diff --git a/apps/files_sharing/js/files_drop.js b/apps/files_sharing/js/files_drop.js
index ba5bd82cc4967246fd078feaf68ef06a65c89542..ddfcfcd3d8bb13e35a606768d71e4cc1a498424e 100644
--- a/apps/files_sharing/js/files_drop.js
+++ b/apps/files_sharing/js/files_drop.js
@@ -20,9 +20,11 @@
 	var Drop = {
 		/** @type {Function} **/
 		_template: undefined,
-
-		initialize: function () {
-
+	
+		addFileToUpload: function(e, data) {
+			var errors = [];
+			var output = this.template();
+			
 			var filesClient = new OC.Files.Client({
 				host: OC.getHost(),
 				port: OC.getPort(),
@@ -32,7 +34,45 @@
 				root: OC.getRootPath() + '/public.php/webdav',
 				useHTTPS: OC.getProtocol() === 'https'
 			});
-
+			
+			var name = data.files[0].name;
+			try {
+				// FIXME: not so elegant... need to refactor that method to return a value
+				Files.isFileNameValid(name);
+			}
+			catch (errorMessage) {
+				OC.Notification.show(errorMessage, {type: 'error'});
+				return false;
+			}
+			var base = OC.getProtocol() + '://' + OC.getHost();
+			data.url = base + OC.getRootPath() + '/public.php/webdav/' + encodeURI(name);
+	
+			data.multipart = false;
+	
+			if (!data.headers) {
+				data.headers = {};
+			}
+	
+			var userName = filesClient.getUserName();
+			var password = filesClient.getPassword();
+			if (userName) {
+				// copy username/password from DAV client
+				data.headers['Authorization'] =
+					'Basic ' + btoa(userName + ':' + (password || ''));
+			}
+	
+			$('#drop-upload-done-indicator').addClass('hidden');
+			$('#drop-upload-progress-indicator').removeClass('hidden');
+			_.each(data['files'], function(file) {
+				$('#public-upload ul').append(output({isUploading: true, name: escapeHTML(file.name)}));
+				$('[data-toggle="tooltip"]').tooltip();
+				data.submit();
+			});
+	
+			return true;
+		},
+		
+		initialize: function () {
 			$(document).bind('drop dragover', function (e) {
 				// Prevent the default browser drop action:
 				e.preventDefault();
@@ -43,42 +83,9 @@
 				dropZone: $('#public-upload'),
 				sequentialUploads: true,
 				add: function(e, data) {
-					var errors = [];
-
-					var name = data.files[0].name;
-					try {
-						// FIXME: not so elegant... need to refactor that method to return a value
-						Files.isFileNameValid(name);
-					}
-					catch (errorMessage) {
-						OC.Notification.show(errorMessage, {type: 'error'});
-						return false;
-					}
-					var base = OC.getProtocol() + '://' + OC.getHost();
-					data.url = base + OC.getRootPath() + '/public.php/webdav/' + encodeURI(name);
-
-					data.multipart = false;
-
-					if (!data.headers) {
-						data.headers = {};
-					}
-
-					var userName = filesClient.getUserName();
-					var password = filesClient.getPassword();
-					if (userName) {
-						// copy username/password from DAV client
-						data.headers['Authorization'] =
-							'Basic ' + btoa(userName + ':' + (password || ''));
-					}
-
-					$('#drop-upload-done-indicator').addClass('hidden');
-					$('#drop-upload-progress-indicator').removeClass('hidden');
-					_.each(data['files'], function(file) {
-						$('#public-upload ul').append(output({isUploading: true, name: escapeHTML(file.name)}));
-						$('[data-toggle="tooltip"]').tooltip();
-						data.submit();
-					});
-
+					Drop.addFileToUpload(e, data);
+					//we return true to keep trying to upload next file even
+					//if addFileToUpload did not like the privious one
 					return true;
 				},
 				done: function(e, data) {
@@ -123,15 +130,13 @@
 		}
 	};
 
+	OCA.FilesSharingDrop = Drop;
+
 	$(document).ready(function() {
 		if($('#upload-only-interface').val() === "1") {
 			$('.avatardiv').avatar($('#sharingUserId').val(), 128, true);
 		}
 
-		OCA.Files_Sharing_Drop = Drop;
-		OCA.Files_Sharing_Drop.initialize();
+		OCA.FilesSharingDrop.initialize();
 	});
-
-
 })(jQuery);
-