diff --git a/jobs.py b/jobs.py
index 9fb807088d39d13a397fc016ef7b66ac841d4a00..484ecd1a77bd2939e73202c5703711156a4da8e1 100644
--- a/jobs.py
+++ b/jobs.py
@@ -25,8 +25,11 @@ def cancel_job(job_id):
 	modify('UPDATE jobs SET state = "deleted" WHERE id = ? AND state = "ready"', job_id)
 	modify('UPDATE jobs SET canceled = 1 WHERE id = ?', job_id)
 
-def restart_job(job_id):
-	modify('UPDATE jobs SET state = "ready" WHERE id = ? AND state = "failed" AND NOT canceled', job_id)
+def restart_job(job_id, canceled=False):
+	if canceled:
+		modify('UPDATE jobs SET state = "ready", canceled = 0 WHERE id = ? AND state = "failed"', job_id)
+	else:
+		modify('UPDATE jobs SET state = "ready" WHERE id = ? AND state = "failed" AND NOT canceled', job_id)
 
 @app.route('/internal/jobs/overview')
 @register_navbar('Jobs', iconlib='fa', icon='suitcase')
@@ -65,13 +68,13 @@ def jobs_overview():
 @csrf_protect
 def jobs_action(action, jobid=None):
 	if action == 'clear_failed':
-		query('UPDATE jobs SET state="deleted" WHERE state = "failed" AND (id = ? OR ? IS NULL)', jobid, jobid)
+		query('UPDATE jobs SET state = "deleted" WHERE state = "failed" AND (id = ? OR ? IS NULL)', jobid, jobid)
 	elif action == 'retry_failed':
-		query('UPDATE jobs SET state="ready" WHERE state = "failed" AND (id = ? OR ? IS NULL)', jobid, jobid)
+		query('UPDATE jobs SET state = "ready", canceled = 0 WHERE state = "failed" AND (id = ? OR ? IS NULL)', jobid, jobid)
 	elif action == 'copy' and jobid:
-		query("INSERT INTO jobs SELECT NULL, type, priority, queue, 'ready', '', '' , ?, '', NULL, data, '{}' FROM jobs where ID=?;", datetime.now(), jobid)
+		query("INSERT INTO jobs (type, priority, queue, state, data, time_created) SELECT type, priority, queue, 'ready', data, ? FROM jobs where id = ?", datetime.now(), jobid)
 	elif action == 'delete' and jobid:
-		query('UPDATE jobs SET state="deleted" WHERE id = ?', jobid)
+		query('UPDATE jobs SET state = "deleted" WHERE id = ?', jobid)
 	elif action == 'cancel' and jobid:
 		cancel_job(jobid)
 	return redirect(request.values.get('ref', url_for('jobs_overview')))