diff --git a/lib/files/view.php b/lib/files/view.php
index 0f9a5feb5dd2128472eac805ca25d6d35add044f..c5e470b438e0b0ea9990ed4bb8756e529fc9f1b4 100644
--- a/lib/files/view.php
+++ b/lib/files/view.php
@@ -672,6 +672,9 @@ class View {
 		if (!$cache->inCache($internalPath)) {
 			$scanner = $storage->getScanner();
 			$scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW);
+		} else {
+			$watcher = new \OC\Files\Cache\Watcher($storage);
+			$watcher->checkUpdate($internalPath);
 		}
 
 		$data = $cache->get($internalPath);
@@ -711,6 +714,9 @@ class View {
 		if (!$cache->inCache($internalPath)) {
 			$scanner = $storage->getScanner();
 			$scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW);
+		} else {
+			$watcher = new \OC\Files\Cache\Watcher($storage);
+			$watcher->checkUpdate($internalPath);
 		}
 
 		$files = $cache->getFolderContents($internalPath); //TODO: mimetype_filter
diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php
index 8ff03963e407a2ab8393b2afd449deb624e8bda7..fa562cb15cd134a65c6e3e81507ad2baa9bbb53b 100644
--- a/tests/lib/files/view.php
+++ b/tests/lib/files/view.php
@@ -146,6 +146,23 @@ class View extends \PHPUnit_Framework_TestCase {
 		$this->assertEquals(3, count($folderView->searchByMime('text')));
 	}
 
+	function testWatcher() {
+		$storage1 = $this->getTestStorage();
+		\OC\Files\Filesystem::mount($storage1, array(), '/');
+
+		$rootView = new \OC\Files\View('');
+
+		$cachedData = $rootView->getFileInfo('foo.txt');
+		$this->assertEquals(16, $cachedData['size']);
+
+		$rootView->putFileInfo('foo.txt', array('mtime' => 10));
+		$storage1->file_put_contents('foo.txt', 'foo');
+		clearstatcache();
+
+		$cachedData = $rootView->getFileInfo('foo.txt');
+		$this->assertEquals(3, $cachedData['size']);
+	}
+
 	/**
 	 * @param bool $scan
 	 * @return \OC\Files\Storage\Storage