diff --git a/files/ajax/rename.php b/files/ajax/rename.php
index 65763fceb94db16ecd167d1d28fc22225c93ee16..7554aa0dd623eca0c27e1e832efddf380804f444 100644
--- a/files/ajax/rename.php
+++ b/files/ajax/rename.php
@@ -1,7 +1,7 @@
 <?php
 
 // Init owncloud
-require_once('../lib/base.php');
+require_once('../../lib/base.php');
 
 // We send json data
 header( "Content-Type: application/jsonrequest" );
diff --git a/files/js/fileactions.js b/files/js/fileactions.js
index 32029c94daa68e4fbb2609bcb06d00f2856dd968..1eb885f06decfe105289b5bf77dad04dc36b96c1 100644
--- a/files/js/fileactions.js
+++ b/files/js/fileactions.js
@@ -126,8 +126,7 @@ FileActions.register('all','Delete',OC.imagePath('core','actions/delete'),functi
 });
 
 FileActions.register('all','Rename',OC.imagePath('core','actions/rename'),function(filename){
-	//todo
-	alert('Implement Me!!');
+	FileList.rename(filename);
 });
 
 FileActions.setDefault('all','Download');
diff --git a/files/js/filelist.js b/files/js/filelist.js
index e84a9acb535b278ff5ea98f5ac53c1c2ea8e8c4c..fb96437f0a7318267902156f21e937ab28d5fffa 100644
--- a/files/js/filelist.js
+++ b/files/js/filelist.js
@@ -73,5 +73,38 @@ FileList={
 	},
 	isLoading:function(name){
 		return $('tr[data-file="'+name+'"]').data('loading');
+	},
+	rename:function(name){
+		var tr=$('tr[data-file="'+name+'"]');
+		var td=tr.children('td.filename');
+		var input=$('<input value='+name+' class="filename"></input>');
+		var button=$('<input type="sumit" value="Ok"></input>');
+		var form=$('<form action="#"></form>')
+		form.append(input);
+		form.append(button);
+		td.children('a.name').text('');
+		td.children('a.name').append(form)
+		input.focus();
+		td.children('a.name').append(button);
+		form.submit(function(event){
+			var newname=input.val();
+			event.stopPropagation();
+			event.preventDefault();
+			tr.attr('data-file',newname);
+			td.children('a.name').empty();
+			td.children('a.name').text(newname);
+			$.ajax({
+				url: 'ajax/rename.php',
+				data: "dir="+$('#dir').val()+"&newname="+encodeURIComponent(newname)+"&file="+encodeURIComponent(name)
+			});
+		});
+		form.click(function(event){
+			event.stopPropagation();
+			event.preventDefault();
+		});
+		input.blur(function(){
+			td.children('a.name').empty();
+			td.children('a.name').text(name);
+		});
 	}
 }