diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js
index 68268a7d3a9ce0e8dd2a8870a6d4e915d7aaf365..085f53945a6c32219454e8823b195971ca1367ff 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -51,7 +51,7 @@ FileActions={
 		var actions=this.get(mime,type);
 		return actions[name];
 	},
-	display:function(parent){
+	display:function(parent, filename, type){
 		FileActions.currentFile=parent;
 		$('#fileList span.fileactions, #fileList td.date a.action').remove();
 		var actions=FileActions.get(FileActions.getCurrentMimeType(),FileActions.getCurrentType());
@@ -62,6 +62,8 @@ FileActions={
 		parent.children('a.name').append('<span class="fileactions" />');
 		var defaultAction=FileActions.getDefault(FileActions.getCurrentMimeType(),FileActions.getCurrentType());
 		for(name in actions){
+			// no rename and share action for the 'Shared' dir
+			if((name=='Rename' || name =='Share') && type=='dir' && filename=='Shared') { continue; }
 			if((name=='Download' || actions[name]!=defaultAction) && name!='Delete'){
 				var img=FileActions.icons[name];
 				if(img.call){
@@ -84,7 +86,7 @@ FileActions={
 				parent.find('a.name>span.fileactions').append(element);
 			}
 		}
-		if(actions['Delete']){
+		if(actions['Delete'] && (type!='dir' || filename != 'Shared')){ // no delete action for the 'Shared' dir
 			var img=FileActions.icons['Delete'];
 			if(img.call){
 				img=img(file);
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 35d80b3cff22ac81d1145fe3ff12d648d0fcfd07..40d5be2214a01d52c809a6605ec9df47b0f10986 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -56,7 +56,7 @@ $(document).ready(function() {
 
 	// Sets the file-action buttons behaviour :
 	$('tr').live('mouseenter',function(event) {
-		FileActions.display($(this).children('td.filename'));
+		FileActions.display($(this).children('td.filename'), $(this).attr('data-file'), $(this).attr('data-type'));
 	});
 	$('tr').live('mouseleave',function(event) {
 		FileActions.hide();
diff --git a/lib/files.php b/lib/files.php
index e0c78d22c2416bc322e197fe48cff216ef3f530b..77f6d7f3d659b362159e7d5e2972b1c2166bf956 100644
--- a/lib/files.php
+++ b/lib/files.php
@@ -224,7 +224,7 @@ class OC_Files {
 	* @param file $name
 	*/
 	public static function delete($dir,$file){
-		if(OC_User::isLoggedIn()){
+		if(OC_User::isLoggedIn() && ($dir!= '' || $file != 'Shared')) {
 			$file=$dir.'/'.$file;
 			return OC_Filesystem::unlink($file);
 		}