diff --git a/lib/base.php b/lib/base.php
index 0730e5ff3a95df74761c807229c78789629b8453..2cbce82677d5c0339230747d89657062797224d2 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -362,6 +362,7 @@ class OC{
 
 		// Check for blacklisted files
 		OC_Hook::connect('OC_Filesystem','write','OC_Filesystem','isBlacklisted');
+		OC_Hook::connect('OC_Filesystem', 'rename', 'OC_Filesystem', 'isBlacklisted');
 
 		//make sure temporary files are cleaned up
 		register_shutdown_function(array('OC_Helper','cleanTmp'));
diff --git a/lib/filesystem.php b/lib/filesystem.php
index 47626c05ae28db6ac0bd821f8b1a85f76d4e739c..e9d2ae9337210c52dddfd7beb5f78ff6ce56cd59 100644
--- a/lib/filesystem.php
+++ b/lib/filesystem.php
@@ -363,13 +363,21 @@ class OC_Filesystem{
 	
 	/**
 	 * checks if a file is blacklsited for storage in the filesystem
+	 * Listens to write and rename hooks
 	 * @param array $data from hook
 	 */
 	static public function isBlacklisted($data){
 		$blacklist = array('.htaccess');
-		$filename = strtolower(basename($data['path']));
-		if(in_array($filename,$blacklist)){
-			$data['run'] = false;	
+		if (isset($data['path'])) {
+			$path = $data['path'];
+		} else if (isset($data['newpath'])) {
+			$path = $data['newpath'];
+		}
+		if (isset($path)) {
+			$filename = strtolower(basename($path));
+			if (in_array($filename, $blacklist)) {
+				$data['run'] = false;
+			}
 		}
 	}