diff --git a/db_structure.xml b/db_structure.xml
index fc7f1082ffa28f7f9bc74a1c011faffc85f6df28..f353ae080988eb7c35e1fdbefef0c133a7ee4c58 100644
--- a/db_structure.xml
+++ b/db_structure.xml
@@ -108,6 +108,14 @@
 				<length>512</length>
 			</field>
 
+			<field>
+				<name>logic_path_hash</name>
+				<type>text</type>
+				<default></default>
+				<notnull>true</notnull>
+				<length>32</length>
+			</field>
+
 			<field>
 				<name>physic_path</name>
 				<type>text</type>
@@ -116,11 +124,19 @@
 				<length>512</length>
 			</field>
 
+			<field>
+				<name>physic_path_hash</name>
+				<type>text</type>
+				<default></default>
+				<notnull>true</notnull>
+				<length>32</length>
+			</field>
+
 			<index>
 				<name>file_map_lp_index</name>
 				<unique>true</unique>
 				<field>
-					<name>logic_path</name>
+					<name>logic_path_hash</name>
 					<sorting>ascending</sorting>
 				</field>
 			</index>
@@ -129,7 +145,7 @@
 				<name>file_map_pp_index</name>
 				<unique>true</unique>
 				<field>
-					<name>physic_path</name>
+					<name>physic_path_hash</name>
 					<sorting>ascending</sorting>
 				</field>
 			</index>
diff --git a/lib/files/mapper.php b/lib/files/mapper.php
index 90e4e1ca669a9f44d6f2ffc850924001fc2ee9a1..71b665e49bb8f715d0fe3d03b8ab9d24777b240d 100644
--- a/lib/files/mapper.php
+++ b/lib/files/mapper.php
@@ -114,8 +114,8 @@ class Mapper
 
 	private function resolveLogicPath($logicPath) {
 		$logicPath = $this->stripLast($logicPath);
-		$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `logic_path` = ?');
-		$result = $query->execute(array($logicPath));
+		$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `logic_path_hash` = ?');
+		$result = $query->execute(array(md5($logicPath)));
 		$result = $result->fetchRow();
 
 		return $result['physic_path'];
@@ -123,8 +123,8 @@ class Mapper
 
 	private function resolvePhysicalPath($physicalPath) {
 		$physicalPath = $this->stripLast($physicalPath);
-		$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `physic_path` = ?');
-		$result = $query->execute(array($physicalPath));
+		$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `physic_path_hash` = ?');
+		$result = $query->execute(array(md5($physicalPath)));
 		$result = $result->fetchRow();
 
 		return $result['logic_path'];
@@ -151,8 +151,8 @@ class Mapper
 	}
 
 	private function insert($logicPath, $physicalPath) {
-		$query = \OC_DB::prepare('INSERT INTO `*PREFIX*file_map`(`logic_path`,`physic_path`) VALUES(?,?)');
-		$query->execute(array($logicPath, $physicalPath));
+		$query = \OC_DB::prepare('INSERT INTO `*PREFIX*file_map`(`logic_path`, `physic_path`, `logic_path_hash`, `physic_path_hash`) VALUES(?, ?, ?, ?)');
+		$query->execute(array($logicPath, $physicalPath, md5($logicPath), md5($physicalPath)));
 	}
 
 	private function slugifyPath($path, $index=null) {