diff --git a/apps/files/ajax/rawlist.php b/apps/files/ajax/rawlist.php
index 531481a84c00e98f46aaeb07ca730d0c91b4568e..40da32b223a4cf37259476dafc714f3617db80ef 100644
--- a/apps/files/ajax/rawlist.php
+++ b/apps/files/ajax/rawlist.php
@@ -3,10 +3,6 @@
 // only need filesystem apps
 $RUNTIME_APPTYPES=array('filesystem');
 
-// Init owncloud
-
-require_once 'lib/template.php';
-
 OCP\JSON::checkLoggedIn();
 
 // Load the files
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index b3ecd1dab93e4cb62cb167881960c7b6aba9f49b..1508f8ac493a1ca9f2c3e71660ba02332dc0bc46 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -16,7 +16,10 @@
 	display:none; position:fixed; min-width:7em; z-index:10;
 	padding:.5em; padding-bottom:0; margin-top:.075em; margin-left:-.5em;
 	text-align:left;
-	background:#f8f8f8; border:1px solid #ddd; border-radius:10px; border-top-left-radius:0;
+	background: #f8f8f8;
+	border: 1px solid #ddd;
+	border-radius: 5px;
+	border-top-left-radius: 0;
 	box-shadow:0 2px 7px rgba(170,170,170,.4);
 }
 #new>ul>li { height:36px; margin:.3em; padding-left:3em; padding-bottom:0.1em;
@@ -228,6 +231,12 @@ table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; }
 	-webkit-transition:background-image 500ms; -moz-transition:background-image 500ms; -o-transition:background-image 500ms; transition:background-image 500ms;
 }
 
+#fileList tr td.filename a.name label {
+	position: absolute;
+	width: 100%;
+	height: 50px;
+}
+
 #uploadsize-message,#delete-confirm { display:none; }
 
 /* File actions */
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index 35077e7dc1a496931c21a550e75e32363444ea2c..e578a1f563cb1f2165ddd085a44cdc214f4e85f5 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -9,7 +9,7 @@
 						data-type='file'><p><?php p($l->t('Text file'));?></p></li>
 					<li style="background-image:url('<?php p(OCP\mimetype_icon('dir')) ?>')"
 						data-type='folder'><p><?php p($l->t('Folder'));?></p></li>
-					<li style="background-image:url('<?php p(OCP\image_path('core', 'filetypes/web.svg')) ?>')"
+					<li style="background-image:url('<?php p(OCP\image_path('core', 'places/link.svg')) ?>')"
 						data-type='web'><p><?php p($l->t('From link'));?></p></li>
 				</ul>
 			</div>
diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php
index 1e4d4d11c98dbfa6344abe6ec9a1f48e993d7588..0679da334dedbe907a3b683552bcae6a619230be 100644
--- a/apps/files/templates/part.list.php
+++ b/apps/files/templates/part.list.php
@@ -30,16 +30,15 @@ $totalsize = 0; ?>
 		<?php endif; ?>
 		<?php if($file['type'] == 'dir'): ?>
 			<a class="name" href="<?php p(rtrim($_['baseURL'],'/').'/'.trim($directory,'/').'/'.$name); ?>" title="">
+				<span class="nametext">
+					<?php print_unescaped(htmlspecialchars($file['name']));?>
+				</span>
 		<?php else: ?>
-			<a class="name" href="<?php p(rtrim($_['downloadURL'],'/').'/'.trim($directory,'/').'/'.$name); ?>" title="">
+			<a class="name" href="<?php p(rtrim($_['downloadURL'],'/').'/'.trim($directory,'/').'/'.$name); ?>">
+				<label class="filetext" title="" for="select-<?php p($file['fileid']); ?>"></label>
+				<span class="nametext"><?php print_unescaped(htmlspecialchars($file['basename']));?><span class='extension'><?php p($file['extension']);?></span>
+			</a>
 		<?php endif; ?>
-			<span class="nametext">
-				<?php if($file['type'] == 'dir'):?>
-					<?php print_unescaped(htmlspecialchars($file['name']));?>
-				<?php else:?>
-					<?php print_unescaped(htmlspecialchars($file['basename']));?><span class='extension'><?php p($file['extension']);?></span>
-				<?php endif;?>
-			</span>
 			<?php if($file['type'] == 'dir'):?>
 				<span class="uploadtext" currentUploads="0">
 				</span>
diff --git a/core/css/share.css b/core/css/share.css
index b6c5a0c139026009588a3a1a7791ec97012aeb5c..2a21dc6edf66d1143febbb1db50ce217a44f8a96 100644
--- a/core/css/share.css
+++ b/core/css/share.css
@@ -2,95 +2,97 @@
  This file is licensed under the Affero General Public License version 3 or later.
  See the COPYING-README file. */
 
- #dropdown {
- 	background:#eee;
- 	border-bottom-left-radius:1em;
- 	border-bottom-right-radius:1em;
- 	box-shadow:0 1px 1px #777;
- 	display:block;
- 	margin-right:7em;
- 	position:absolute;
- 	right:0;
- 	width:25em;
- 	z-index:500;
- 	padding:1em;
- }
-
- #shareWithList {
- 	list-style-type:none;
- 	padding:.5em;
- }
-
- #shareWithList li {
- 	padding-top:.1em;
- }
-
- #shareWithList li:first-child {
-	 white-space:normal;
- }
-
- #shareWithList .cruds {
-	 margin-left:-10px;
- }
+#dropdown {
+	background:#eee;
+	border-bottom-left-radius: 5px;
+	border-bottom-right-radius: 5px;
+	box-shadow:0 1px 1px #777;
+	display:block;
+	margin-right:7em;
+	position:absolute;
+	right:0;
+	width:25em;
+	z-index:500;
+	padding:1em;
+}
+
+#shareWithList {
+	list-style-type:none;
+	padding:.5em;
+}
+
+#shareWithList li {
+	padding-top:.1em;
+}
+
+#shareWithList li:first-child {
+	white-space:normal;
+}
+
+#shareWithList .cruds {
+	margin-left:-10px;
+}
 
 #shareWithList .unshare img, #shareWithList .showCruds img {
 	vertical-align:text-bottom; /* properly align icons */
 }
 
- #dropdown label {
- 	font-weight:400;
- }
+#dropdown label {
+	font-weight:400;
+}
 
- #dropdown input[type="checkbox"] {
- 	margin:0 .2em 0 .5em;
- }
+#dropdown input[type="checkbox"] {
+	margin:0 .2em 0 .5em;
+}
 
- a.showCruds {
- 	display:inline;
- 	opacity:.5;
- }
+a.showCruds {
+	display:inline;
+	opacity:.5;
+}
 
- a.unshare {
- 	display:inline;
- 	float:right;
- 	opacity:.5;
- 	padding:.3em 0 0 .3em !important;
+a.unshare {
+	display:inline;
+	float:right;
+	opacity:.5;
+	padding:.3em 0 0 .3em !important;
 	margin-top:-5px;
- }
+}
 
- #link {
- 	border-top:1px solid #ddd;
- 	padding-top:.5em;
- }
+#link {
+	border-top:1px solid #ddd;
+	padding-top:.5em;
+}
 
 #dropdown input[type="text"],#dropdown input[type="password"] {
-    width:90%;
+	width:90%;
 }
 
 #dropdown form {
-    font-size: 100%;
-    margin-left: 0;
-    margin-right: 0;
+	font-size: 100%;
+	margin-left: 0;
+	margin-right: 0;
 }
 
 #linkText,#linkPass,#expiration {
- 	display:none;
- }
+	display:none;
+}
 
- #link #showPassword img {
- 	padding-left:.3em;
- 	width:12px;
- }
+#link #showPassword img {
+	padding-left:.3em;
+	width:12px;
+}
 
- .reshare,#link label,#expiration label {
- 	padding-left:.5em;
- }
+.reshare,#link label,#expiration label {
+	padding-left:.5em;
+}
 
- a.showCruds:hover,a.unshare:hover {
- 	opacity:1;
- }
+a.showCruds:hover,a.unshare:hover {
+	opacity:1;
+}
 
-.reshare { white-space:normal; } /* fix shared by text going out of box */
+.reshare { /* fix shared by text going out of box */
+	white-space:normal;
+}
 
 .ui-autocomplete { /* limit dropdown height to 4 1/2 entries */
 	max-height:103px;
diff --git a/core/css/styles.css b/core/css/styles.css
index dcdeda8a9c95d7aecf57db686a81bb23f23b8e4f..06b61f0fa689d792a3e61b46e1c867c1baf6a30b 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -19,9 +19,6 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari
 #body-user #header, #body-settings #header {
 	position:fixed; top:0; left:0; right:0; z-index:100; height:45px; line-height:2.5em;
 	background:#1d2d44 url('../img/noise.png') repeat;
-	-moz-box-shadow:0 0 10px rgba(0, 0, 0, .5);
-	-webkit-box-shadow:0 0 10px rgba(0, 0, 0, .5);
-	box-shadow:0 0 10px rgba(0, 0, 0, .5);
 }
 
 #body-login {
@@ -164,7 +161,6 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b
 	border-bottom: 1px solid #e7e7e7;
 	z-index: 50;
 	-moz-box-sizing: border-box; box-sizing: border-box;
-	-moz-box-shadow: 0 -3px 7px #000; -webkit-box-shadow: 0 -3px 7px #000; box-shadow: 0 -3px 7px #000;
 }
 #controls .button {
 	display: inline-block;
@@ -512,7 +508,6 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
 	z-index: 75;
 	height: 100%;
 	background:#383c43 url('../img/noise.png') repeat;
-	-moz-box-shadow:0 0 7px #000; -webkit-box-shadow:0 0 7px #000; box-shadow:0 0 7px #000;
 	overflow:hidden; box-sizing:border-box; -moz-box-sizing:border-box;
 	/* prevent ugly selection effect on accidental selection */
 	-webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;
diff --git a/core/img/places/link.png b/core/img/places/link.png
new file mode 100644
index 0000000000000000000000000000000000000000..44b7e199a7267e9c1d87f54ebdbf064e7fac0b45
Binary files /dev/null and b/core/img/places/link.png differ
diff --git a/core/img/places/link.svg b/core/img/places/link.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8784ebc1456b6050f176baa85d3432f1375458f1
--- /dev/null
+++ b/core/img/places/link.svg
@@ -0,0 +1,12 @@
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <metadata>
+  <rdf:RDF>
+   <cc:Work rdf:about="">
+    <dc:format>image/svg+xml</dc:format>
+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+    <dc:title/>
+   </cc:Work>
+  </rdf:RDF>
+ </metadata>
+ <path fill="#333" d="M16,4c-6.6274,0-12,5.3726-12,12,0,6.627,5.3726,12,12,12,6.627,0,12-5.373,12-12,0-6.6274-5.373-12-12-12zm1.375,1.5313c2.059,0.0457,3.879,1.2826,5.719,2.0938l2.9691,4.1093-0.46971,1.7657,0.90686,0.56246-0.01543,2.0937c-0.02074,0.59892,0.0086,1.1986-0.0156,1.7969-0.28517,1.1355-0.94394,2.1713-1.5,3.2031-0.37695,0.18585,0.03437-1.2317-0.20313-1.6719,0.05486-1.0173-0.80743-0.97029-1.3903-0.40526-0.72172,0.42068-2.3074,0.54754-2.3589-0.59383-0.40972-1.3716-0.06-2.833,0.49886-4.1093l-0.921-1.125,0.327-2.891-1.469-1.4839,0.345-1.6252-1.719-0.9687c-0.339-0.2661-0.984-0.3713-1.125-0.7344,0.13954-0.00789,0.28457-0.018686,0.42189-0.0156zm-4.2187,0.015634c0.0539,0.00789,0.11999,0.045309,0.21874,0.125,0.57943,0.31834-0.14143,0.67954-0.31251,1.0157-0.92537,0.62589,0.28457,1.1385,0.68743,1.6406,0.64577-0.18549,1.2917-1.1086,2.2344-0.828,1.2058-0.37629,1.0137,1.0099,1.7031,1.625,0.08948,0.28954,1.5086,1.2317,0.65623,0.92177-0.702-0.54411-1.4827-0.50314-1.9845,0.28131-1.355,0.735-0.552-1.4144-1.202-1.9373-0.982-1.0957-0.57,0.8186-0.687,1.3907-0.639-0.0139-1.831-0.4913-2.485,0.2816l0.64046,1.0467,0.76577-1.1719c0.186-0.42411,0.41949,0.32966,0.62486,0.46886,0.24531,0.47297,1.4109,1.2744,0.53126,1.5-1.3039,0.72326-2.3295,1.8202-3.4375,2.7969-0.37371,0.78857-1.1366,0.6984-1.6094,0.0468-1.1438-0.70372-1.0589,1.1256-0.99994,1.8125l1.0013-0.626v1.0312c-0.028286,0.19509-0.00411,0.39806-0.0156,0.59383-0.70063,0.732-1.4069-1.0277-2.0157-1.422l-0.0468-2.5781c0.022114-0.72429-0.1308-1.4659,0.0156-2.1718,1.3779-1.4789,2.7775-3.0107,3.5935-4.891h1.3437c0.93909,0.45497,0.40406-1.0082,0.7812-0.95314zm-1.984,13.406c0.16303-0.01739,0.34848,0.01984,0.54688,0.12501,1.265,0.18106,2.2109,1.0987,3.2187,1.7969,0.80352,0.79632,2.5419,0.54134,2.7345,1.8907-0.29248,1.4636-1.7323,2.2495-3,2.7657-0.31646,0.17657-0.65657,0.31714-1.0157,0.37543-1.1753,0.29314-1.6834-0.912-1.9219-1.8137-0.53212-1.1143-1.8621-1.9577-1.6718-3.3274,0.0312-0.68057,0.40286-1.7373,1.1093-1.8125z"/>
+</svg>
diff --git a/lib/autoloader.php b/lib/autoloader.php
index 8b12e6bc4b7c54bb858c9b126dc2aa1603739d85..b5b58918372f563e844851255254b8abc617eeba 100644
--- a/lib/autoloader.php
+++ b/lib/autoloader.php
@@ -77,6 +77,7 @@ class Autoloader {
 			$paths[] = 'private/' . strtolower(str_replace('_', '/', substr($class, 3)) . '.php');
 		} elseif (strpos($class, 'OC\\') === 0) {
 			$paths[] = 'private/' . strtolower(str_replace('\\', '/', substr($class, 3)) . '.php');
+			$paths[] = strtolower(str_replace('\\', '/', substr($class, 3)) . '.php');
 		} elseif (strpos($class, 'OCP\\') === 0) {
 			$paths[] = 'public/' . strtolower(str_replace('\\', '/', substr($class, 4)) . '.php');
 		} elseif (strpos($class, 'OCA\\') === 0) {
diff --git a/lib/private/files/cache/upgrade.php b/lib/private/files/cache/upgrade.php
index cfb9a1173113fffd6f278acb780a05e87879001d..e3a46896cbfa49a18f26d0d2446346a170a61a9f 100644
--- a/lib/private/files/cache/upgrade.php
+++ b/lib/private/files/cache/upgrade.php
@@ -192,7 +192,15 @@ class Upgrade {
 	 */
 	static function needUpgrade($user) {
 		$cacheVersion = (int)\OCP\Config::getUserValue($user, 'files', 'cache_version', 4);
-		return $cacheVersion < 5;
+		if ($cacheVersion < 5) {
+			$legacy = new \OC\Files\Cache\Legacy($user);
+			if ($legacy->hasItems()) {
+				return true;
+			}
+			self::upgradeDone($user);
+		}
+
+		return false;
 	}
 
 	/**
diff --git a/tests/lib/autoloader.php b/tests/lib/autoloader.php
index b182dc8747795fae5c777e901526f1d36f9fe7c9..314a8ebee8d4c9ca86d101f0658d4b2555db4acb 100644
--- a/tests/lib/autoloader.php
+++ b/tests/lib/autoloader.php
@@ -19,11 +19,11 @@ class AutoLoader extends \PHPUnit_Framework_TestCase {
 	}
 
 	public function testLeadingSlashOnClassName() {
-		$this->assertEquals(array('private/files/storage/local.php'), $this->loader->findClass('\OC\Files\Storage\Local'));
+		$this->assertEquals(array('private/files/storage/local.php', 'files/storage/local.php'), $this->loader->findClass('\OC\Files\Storage\Local'));
 	}
 
 	public function testNoLeadingSlashOnClassName() {
-		$this->assertEquals(array('private/files/storage/local.php'), $this->loader->findClass('OC\Files\Storage\Local'));
+		$this->assertEquals(array('private/files/storage/local.php', 'files/storage/local.php'), $this->loader->findClass('OC\Files\Storage\Local'));
 	}
 
 	public function testLegacyPath() {
@@ -54,7 +54,7 @@ class AutoLoader extends \PHPUnit_Framework_TestCase {
 	}
 
 	public function testLoadCoreNamespace() {
-		$this->assertEquals(array('private/foo/bar.php'), $this->loader->findClass('OC\Foo\Bar'));
+		$this->assertEquals(array('private/foo/bar.php', 'foo/bar.php'), $this->loader->findClass('OC\Foo\Bar'));
 	}
 
 	public function testLoadCore() {