diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index ebc95d64cfd1e954c9dd5e2c356ccc79ae9355db..27ed0254dd3d739acfe9c8297b915c061afedae2 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -233,41 +233,24 @@ $(document).ready(function() {
 					}
 				},
 				initSelection: function(element, callback) {
-
-					var promises = [];
-
-					var results = [];
-
-					$(element.val().split(",")).each(function (i,userId) {
-						var def = new $.Deferred();
-						promises.push(def.promise());
-
-						var pos = userId.indexOf('(group)');
-						if (pos !== -1) {
-							//add as group
-							results.push({name:userId, displayname:userId.substr(0, pos), type:'group'});
-							def.resolve();
-						} else {
-							$.ajax(OC.generateUrl('apps/files_external/applicable'), {
-								data: {
-									pattern: userId
-								},
-								dataType: "json"
-							}).done(function(data) {
-								if (data.status === "success") {
-									if (data.users[userId]) {
-										results.push({name:userId, displayname:data.users[userId], type:'user'});
-									}
-									def.resolve();
-								} else {
-									//FIXME add error handling
+					$.ajax(OC.generateUrl('displaynames'), {
+						data: {
+							users: element.val().split(",")
+						},
+						dataType: "json"
+					}).done(function(data) {
+						var results = [];
+						if (data.status === "success") {
+							$.each(data.users, function(user, displayname) {
+								if (displayname !== false) {
+									results.push({name:user, displayname:displayname, type:'user'});
 								}
 							});
+							callback(results);
+						} else {
+							//FIXME add error handling
 						}
 					});
-					$.when.apply(undefined, promises).then(function(){
-						callback(results);
-					});
 				},
 				id: function(element) {
 					return element.name;