diff --git a/mo/jobs/protocols.py b/mo/jobs/protocols.py
index ae9e8a7360e2275cf968ee6fbb519a7e3e53bb5c..1a3e17282c31223198dbffab9d9fc229720dec4a 100644
--- a/mo/jobs/protocols.py
+++ b/mo/jobs/protocols.py
@@ -415,6 +415,7 @@ def schedule_sort_scans(job_id: int, for_user: db.User) -> int:
     scans_desc = "oprav" if 'type' in job.in_json and job.in_json['type'] == "feedback" else "odevzdaných řešení"
     job.type = db.JobType.sort_scans
     job.created_at = mo.now
+    job.finished_at = None
     job.expires_at = None
     job.user = for_user
     job.description = f'Rozdělení již roztříděných skenů {scans_desc} {contest.round.round_code_short()}'
@@ -554,4 +555,3 @@ def handle_sort_scans(the_job: TheJob):
         job.result = 'Celkem ' + mo.util_format.inflect_number(len(papers), 'roztříděné řešení', 'roztříděná řešení', 'roztříděných řešení')
     else:
         job.result = 'Celkem ' + mo.util_format.inflect_number(len(papers), 'roztříděná oprava', 'roztříděné opravy', 'roztříděných oprav')
-    the_job.expires_in_minutes = config.JOB_EXPIRATION_LONG
diff --git a/static/js/autocomplete.js b/static/js/autocomplete.js
index 7148dc8813b6e08b97796eb5f3cbcac3c5e7e664..f935654331ddc906ef4af99bda2591647212503a 100644
--- a/static/js/autocomplete.js
+++ b/static/js/autocomplete.js
@@ -28,6 +28,9 @@ function autocomplete(inp, arr, callback=null, max=10) {
 			if (index != -1) {
 				listCount++;
 				b = document.createElement("DIV");
+				if (text.toUpperCase() == val.toUpperCase()) {
+					b.classList.add("exact");
+				}
 				b.innerHTML = text.substr(0, index) + "<strong>" + text.substr(index, val.length) + "</strong>" + text.substr(index + val.length)
 				b.innerHTML += "<input type='hidden' value='" + key + "'>";
 				b.innerHTML += "<input type='hidden' value='" + text + "'>";
@@ -75,6 +78,32 @@ function autocomplete(inp, arr, callback=null, max=10) {
 		e.stopPropagation();
 	});
 
+	inp.addEventListener("blur", function(e) {
+		var found = false;
+		for (i = 0; i < arr.length; i++) {
+			var key, text;
+			if (Array.isArray(arr[i])) {
+				key = arr[i][0]; text = arr[i][1];
+			} else {
+				key = arr[i]; text = arr[i];
+			}
+
+			if (inp.value.toUpperCase() == text.toUpperCase()) {
+				found = true;
+				if (callback) {
+					callback(key);
+				}
+				break;
+			}
+		}
+		if (!found) {
+			inp.value = "";
+			if (callback) {
+				callback(null);
+			}
+		}
+	});
+
 	function addActive(x) {
 		if (!x) return false;
 		removeActive(x);
diff --git a/static/mo.css b/static/mo.css
index 13b0d8d3f5766592c10b17b9c0ca018e209a94e0..d8a48412428acd705fbda3f7c1995669bd7881f5 100644
--- a/static/mo.css
+++ b/static/mo.css
@@ -454,6 +454,9 @@ div.message .msg-date {
 	background-color: #fff;
 	border-bottom: 1px solid #d4d4d4;
 }
+.autocomplete-items div.exact {
+	background-color: rgb(255, 255, 145);
+}
 .autocomplete-items div:hover {
 	background-color: #e9e9e9;
 }