diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index fcebacc19d7fb66134564d2f9142e8dbfc8ddac8..109f86b2e8752b78c9fd53270d383b61d45f4ecf 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -6,3 +6,4 @@ OC::$CLASSPATH['OC_Filestorage_Shared'] = "apps/files_sharing/lib/sharedstorage.
 OCP\Util::connectHook('OC_Filesystem', 'setup', 'OC_Filestorage_Shared', 'setup');
 OCP\Share::registerBackend('file', 'OC_Share_Backend_File');
 OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file');
+OCP\Util::addScript('files_sharing', 'share');
diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js
new file mode 100644
index 0000000000000000000000000000000000000000..bcfd42ce21e821f583e64d343c5c0f39283229ff
--- /dev/null
+++ b/apps/files_sharing/js/share.js
@@ -0,0 +1,64 @@
+$(document).ready(function() {
+
+	if (typeof FileActions !== 'undefined') {
+		OC.Share.loadIcons('file');
+		FileActions.register('all', 'Share', FileActions.PERMISSION_SHARE, function(filename) {
+			// Return the correct sharing icon
+			if (scanFiles.scanning) { return; } // workaround to prevent additional http request block scanning feedback
+			if ($('#dir').val() == '/') {
+				var item = $('#dir').val() + filename;
+			} else {
+				var item = $('#dir').val() + '/' + filename;
+			}
+			// Check if status is in cache
+			if (OC.Share.statuses[item] === true) {
+				return OC.imagePath('core', 'actions/public');
+			} else if (OC.Share.statuses[item] === false) {
+				return OC.imagePath('core', 'actions/shared');
+			} else {
+				var last = '';
+				var path = OC.Share.dirname(item);
+				// Search for possible parent folders that are shared
+				while (path != last) {
+					if (OC.Share.statuses[path] === true) {
+						return OC.imagePath('core', 'actions/public');
+					} else if (OC.Share.statuses[path] === false) {
+						return OC.imagePath('core', 'actions/shared');
+					}
+					last = path;
+					path = OC.Share.dirname(path);
+				}
+				return OC.imagePath('core', 'actions/share');
+			}
+		}, function(filename) {
+			if ($('#dir').val() == '/') {
+				var item = $('#dir').val() + filename;
+			} else {
+				var item = $('#dir').val() + '/' + filename;
+			}
+			if ($('tr').filterAttr('data-file', filename).data('type') == 'dir') {
+				var itemType = 'folder';
+				var possiblePermissions = OC.Share.PERMISSION_CREATE | OC.Share.PERMISSION_UPDATE | OC.Share.PERMISSION_DELETE | OC.Share.PERMISSION_SHARE;
+			} else {
+				var itemType = 'file';
+				var possiblePermissions = OC.Share.PERMISSION_UPDATE | OC.Share.PERMISSION_DELETE | OC.Share.PERMISSION_SHARE;
+			}
+			var appendTo = $('tr').filterAttr('data-file', filename).find('td.filename');
+			// Check if drop down is already visible for a different file
+			if (OC.Share.droppedDown) {
+				if (item != $('#dropdown').data('item')) {
+					OC.Share.hideDropDown(function () {
+						$('tr').filterAttr('data-file', filename).addClass('mouseOver');
+						OC.Share.showDropDown(itemType, item, appendTo, true, possiblePermissions);
+					});
+				} else {
+					OC.Share.hideDropDown();
+				}
+			} else {
+				$('tr').filterAttr('data-file',filename).addClass('mouseOver');
+				OC.Share.showDropDown(itemType, item, appendTo, true, possiblePermissions);
+			}
+		});
+	}
+
+});
\ No newline at end of file
diff --git a/core/js/share.js b/core/js/share.js
index c1d66ee9214de4afbee6ff8f6d644618525919b6..a552aa80830688098b15144418befd15b54f4b90 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -275,67 +275,6 @@ $(document).ready(function() {
 			}
 		}
 	});
-	
-	if (typeof FileActions !== 'undefined') {
-		OC.Share.loadIcons('file');
-		FileActions.register('all', 'Share', FileActions.PERMISSION_SHARE, function(filename) {
-			// Return the correct sharing icon
-			if (scanFiles.scanning) { return; } // workaround to prevent additional http request block scanning feedback
-			if ($('#dir').val() == '/') {
-				var item = $('#dir').val() + filename;
-			} else {
-				var item = $('#dir').val() + '/' + filename;
-			}
-			// Check if status is in cache
-			if (OC.Share.statuses[item] === true) {
-				return OC.imagePath('core', 'actions/public');
-			} else if (OC.Share.statuses[item] === false) {
-				return OC.imagePath('core', 'actions/shared');
-			} else {
-				var last = '';
-				var path = OC.Share.dirname(item);
-				// Search for possible parent folders that are shared
-				while (path != last) {
-					if (OC.Share.statuses[path] === true) {
-						return OC.imagePath('core', 'actions/public');
-					} else if (OC.Share.statuses[path] === false) {
-						return OC.imagePath('core', 'actions/shared');
-					}
-					last = path;
-					path = OC.Share.dirname(path);
-				}
-				return OC.imagePath('core', 'actions/share');
-			}
-		}, function(filename) {
-			if ($('#dir').val() == '/') {
-				var item = $('#dir').val() + filename;
-			} else {
-				var item = $('#dir').val() + '/' + filename;
-			}
-			if ($('tr').filterAttr('data-file', filename).data('type') == 'dir') {
-				var itemType = 'folder';
-				var possiblePermissions = OC.Share.PERMISSION_CREATE | OC.Share.PERMISSION_UPDATE | OC.Share.PERMISSION_DELETE | OC.Share.PERMISSION_SHARE;
-			} else {
-				var itemType = 'file';
-				var possiblePermissions = OC.Share.PERMISSION_UPDATE | OC.Share.PERMISSION_DELETE | OC.Share.PERMISSION_SHARE;
-			}
-			var appendTo = $('tr').filterAttr('data-file', filename).find('td.filename');
-			// Check if drop down is already visible for a different file
-			if (OC.Share.droppedDown) {
-				if (item != $('#dropdown').data('item')) {
-					OC.Share.hideDropDown(function () {
-						$('tr').filterAttr('data-file', filename).addClass('mouseOver');
-						OC.Share.showDropDown(itemType, item, appendTo, true, possiblePermissions);
-					});
-				} else {
-					OC.Share.hideDropDown();
-				}
-			} else {
-				$('tr').filterAttr('data-file',filename).addClass('mouseOver');
-				OC.Share.showDropDown(itemType, item, appendTo, true, possiblePermissions);
-			}
-		});
-	}
 
 	$(this).click(function(event) {
 		if (OC.Share.droppedDown && !($(event.target).hasClass('drop')) && $('#dropdown').has(event.target).length === 0) {
diff --git a/lib/files.php b/lib/files.php
index ce7cf2c4466e5d110c687b91e513fe7bb5e9041f..1a1fffa0a50fb97c181e8105812e58dd3808befb 100644
--- a/lib/files.php
+++ b/lib/files.php
@@ -38,7 +38,7 @@ class OC_Files {
 			$directory='';
 		}
 		$files = array();
-		if (substr($directory, 0, 7) == '/Shared') {
+		if (($directory == '/Shared' || substr($directory, 0, 8) == '/Shared/') && OC_App::isEnabled('files_sharing')) {
 			if ($directory == '/Shared') {
 				$files = OCP\Share::getItemsSharedWith('file', OC_Share_Backend_File::FORMAT_FILE_APP, array('folder' => $directory, 'mimetype_filter' => $mimetype_filter));
 			} else {
@@ -65,7 +65,7 @@ class OC_Files {
 				}
 				$file['permissions'] = $permissions;
 			}
-			if ($directory == '') {
+			if ($directory == '' && OC_App::isEnabled('files_sharing')) {
 				// Add 'Shared' folder
 				$files = array_merge($files, OCP\Share::getItemsSharedWith('file', OC_Share_Backend_File::FORMAT_FILE_APP_ROOT));
 			}