diff --git a/lib/private/files/storage/mappedlocal.php b/lib/private/files/storage/mappedlocal.php
index 6910eef74013111da4d2f78a023457b14f53ba32..c4a8dc1961c083221924446a5978e065c8342721 100644
--- a/lib/private/files/storage/mappedlocal.php
+++ b/lib/private/files/storage/mappedlocal.php
@@ -184,8 +184,8 @@ class MappedLocal extends \OC\Files\Storage\Common {
 	}
 
 	public function rename($path1, $path2) {
-		$srcParent = dirname($path1);
-		$dstParent = dirname($path2);
+		$srcParent = $this->dirname($path1);
+		$dstParent = $this->dirname($path2);
 
 		if (!$this->isUpdatable($srcParent)) {
 			\OC_Log::write('core', 'unable to rename, source directory is not writable : ' . $srcParent, \OC_Log::ERROR);
@@ -355,6 +355,8 @@ class MappedLocal extends \OC\Files\Storage\Common {
 
 	/**
 	 * @param string $path
+	 * @param bool $create
+	 * @return string
 	 */
 	private function buildPath($path, $create = true) {
 		$path = $this->stripLeading($path);
@@ -362,6 +364,19 @@ class MappedLocal extends \OC\Files\Storage\Common {
 		return $this->mapper->logicToPhysical($fullPath, $create);
 	}
 
+	/**
+	 * @param string $path
+	 * @return string
+	 */
+	private function dirName($path) {
+		$path = dirname($path);
+		if ($path === '.') {
+			return '';
+		} else {
+			return $path;
+		}
+	}
+
 	/**
 	 * @param string $path
 	 */