diff --git a/core/ajax/share.php b/core/ajax/share.php
index 8b48effb458b06508d63e79fb2b387eaa2b9bb26..784b2528f4046a6f78517daeb58d2978e1df932f 100644
--- a/core/ajax/share.php
+++ b/core/ajax/share.php
@@ -354,8 +354,32 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
 						break;
 					}
 				}
+				usort($shareWith, 'sortSearchFirst');
 				OC_JSON::success(array('data' => $shareWith));
 			}
 			break;
 	}
 }
+
+
+/**
+ * User and Group names matching the search term at the beginning shall appear
+ * on top of the share dialog.
+ * Callback function for usort. http://php.net/usort
+ */
+function sortSearchFirst($a, $b) {
+	$enc = 'UTF-8';
+	$nameA = mb_strtolower($a['label'], $enc);
+	$nameB = mb_strtolower($b['label'], $enc);
+	$term = mb_strtolower($_GET['search'], $enc);
+	$i = mb_strpos($nameA, $term, 0, 'UTF-8');
+	$j = mb_strpos($nameB, $term, 0, 'UTF-8');
+
+	if($i === $j) {
+		return 0;
+	} else if ($i === 0) {
+		return -1;
+	} else {
+		return 1;
+	}
+}