diff --git a/apps/files_external/css/settings.css b/apps/files_external/css/settings.css
index f2f40247b28c02b9875dda7a26c29e8722f0d7a4..0ebae9d82bed86b19198e57e62073cf52aef23a9 100644
--- a/apps/files_external/css/settings.css
+++ b/apps/files_external/css/settings.css
@@ -4,7 +4,6 @@ td.status > span {
 	width: 16px;
 	vertical-align: text-bottom;
 }
-
 span.success {
 	background: #37ce02;
 	border-radius: 8px;
@@ -12,9 +11,6 @@ span.success {
 span.error {
 	background: #ce3702;
 }
-span.waiting {
-	background: none;
-}
 
 td.mountPoint, td.backend { width:10em; }
 td.remove>img { visibility:hidden; padding-top:0.8em; }
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index 3e605c59a9304491635a5b24094e3af9e6774b39..886c324e338cfaaf742ee1ba3194c3f5d6fce580 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -1,10 +1,23 @@
+(function(){
+
+function updateStatus(statusEl, result){
+	statusEl.removeClass('success error loading-small');
+	if (result && result.status == 'success' && result.data.message) {
+		statusEl.addClass('success');
+		return true;
+	} else {
+		statusEl.addClass('error');
+		return false;
+	}
+}
+
 OC.MountConfig={
 	saveStorage:function(tr) {
 		var mountPoint = $(tr).find('.mountPoint input').val();
 		if (mountPoint == '') {
 			return false;
 		}
-		var statusSpan = $(tr).find('.status span');
+		var statusSpan = $(tr).closest('tr').find('.status span');
 		var backendClass = $(tr).find('.backend').data('class');
 		var configuration = $(tr).find('.configuration input');
 		var addMountPoint = true;
@@ -58,6 +71,7 @@ OC.MountConfig={
 						}
 						users.push(applicable);
 					}
+					statusSpan.addClass('loading-small').removeClass('error success');
 					$.ajax({type: 'POST',
 						url: OC.filePath('files_external', 'ajax', 'addMountPoint.php'),
 						data: {
@@ -68,15 +82,11 @@ OC.MountConfig={
 							applicable: applicable,
 							isPersonal: isPersonal
 						},
-						async: false,
 						success: function(result) {
-							statusSpan.removeClass();
-							if (result && result.status == 'success' && result.data.message) {
-								status = true;
-								statusSpan.addClass('success');
-							} else {
-								statusSpan.addClass('error');
-							}
+							status = updateStatus(statusSpan, result);
+						},
+						error: function(result){
+							status = updateStatus(statusSpan, result);
 						}
 					});
 				});
@@ -93,8 +103,7 @@ OC.MountConfig={
 							mountType: mountType,
 							applicable: applicable,
 							isPersonal: isPersonal
-						},
-						async: false
+						}
 					});
 				});
 				var mountType = 'user';
@@ -108,14 +117,14 @@ OC.MountConfig={
 							mountType: mountType,
 							applicable: applicable,
 							isPersonal: isPersonal
-						},
-						async: false
+						}
 					});
 				});
 			} else {
 				var isPersonal = true;
 				var mountType = 'user';
 				var applicable = OC.currentUser;
+				statusSpan.addClass('loading-small').removeClass('error success');
 				$.ajax({type: 'POST',
 					url: OC.filePath('files_external', 'ajax', 'addMountPoint.php'),
 					data: {
@@ -126,15 +135,11 @@ OC.MountConfig={
 						applicable: applicable,
 						isPersonal: isPersonal
 					},
-					async: false,
 					success: function(result) {
-						statusSpan.removeClass();
-						if (result && result.status == 'success' && result.data.message) {
-							status = true;
-							statusSpan.addClass('success');
-						} else {
-							statusSpan.addClass('error');
-						}
+						status = updateStatus(statusSpan, result);
+					},
+					error: function(result){
+						status = updateStatus(statusSpan, result);
 					}
 				});
 			}
@@ -157,7 +162,7 @@ $(document).ready(function() {
 			$(tr).find('.mountPoint input').val(suggestMountPoint(selected));
 		}
 		$(tr).addClass(backendClass);
-		$(tr).find('.status').append('<span class="waiting"></span>');
+		$(tr).find('.status').append('<span></span>');
 		$(tr).find('.backend').data('class', backendClass);
 		var configurations = $(this).data('configurations');
 		var td = $(tr).find('td.configuration');
@@ -293,3 +298,5 @@ $(document).ready(function() {
 	});
 
 });
+
+})();
diff --git a/core/css/styles.css b/core/css/styles.css
index 1a521019d98c68734c6d87c99794eec05fb146a0..b919660779e08251800b6c41721639821b2086ff 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -748,6 +748,7 @@ a.bookmarklet { background-color:#ddd; border:1px solid #ccc; padding:5px;paddin
 span.ui-icon {float: left; margin: 3px 7px 30px 0;}
 
 .loading { background: url('../img/loading.gif') no-repeat center; cursor: wait; }
+.loading-small { background: url('../img/loading-small.gif') no-repeat center; cursor: wait; }
 .move2trash { /* decrease spinner size */
 	width: 16px;
 	height: 16px;
diff --git a/core/img/loading-small.gif b/core/img/loading-small.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5025f0bedebc9a7ae8bcfa10d4541e9fb1fe49ba
Binary files /dev/null and b/core/img/loading-small.gif differ