diff --git a/lib/filestorage/common.php b/lib/filestorage/common.php
index 62b12fede09c875b93b82e27405b0c06d7fa60a1..40a9cff5d06c872ffd5862e878cc8d26e17ac123 100644
--- a/lib/filestorage/common.php
+++ b/lib/filestorage/common.php
@@ -108,7 +108,7 @@ abstract class OC_Filestorage_Common extends OC_Filestorage {
 // 	abstract public function free_space($path);
 // 	abstract public function search($query);
 	public function getLocalFile($path){
-		return $this->toTmpFile();
+		return $this->toTmpFile($path);
 	}
 	private function toTmpFile($path){//no longer in the storage api, still usefull here
 		$source=$this->fopen($path,'r');
@@ -117,7 +117,7 @@ abstract class OC_Filestorage_Common extends OC_Filestorage {
 		}
 		$extention=substr($path,strrpos($path,'.'));
 		$tmpFile=OC_Helper::tmpFile($extention);
-		$target=fopen($tmpFile);
+		$target=fopen($tmpFile,'w');
 		$count=OC_Helper::streamCopy($source,$target);
 		return $tmpFile;
 	}
diff --git a/tests/lib/filestorage.php b/tests/lib/filestorage.php
index 5a89c74fe89312a54244e297d3eab2265dd79691..fb050868ee32e0b58ec472f43d883d91a5748988 100644
--- a/tests/lib/filestorage.php
+++ b/tests/lib/filestorage.php
@@ -118,6 +118,12 @@ abstract class Test_FileStorage extends UnitTestCase {
 		$this->assertFalse($this->instance->file_exists('/source.txt'));
 		$this->assertEqual(file_get_contents($textFile),$this->instance->file_get_contents('/target.txt'));
 	}
+	
+	public function testLocalFile(){
+		$textFile=OC::$SERVERROOT.'/tests/data/lorem.txt';
+		$this->instance->file_put_contents('/lorem.txt',file_get_contents($textFile));
+		$localFile=$this->instance->getLocalFile('/lorem.txt');
+		$this->assertTrue(file_exists($localFile));
+		$this->assertEqual(file_get_contents($localFile),file_get_contents($textFile));
+	}
 }
-
-