diff --git a/lib/private/files/mount/mountpoint.php b/lib/private/files/mount/mountpoint.php
index 2871bbd908351500d6e9dc6212f716eb30159a5c..5e4949aa9ddb7a4e513a474f281c8d4771e40910 100644
--- a/lib/private/files/mount/mountpoint.php
+++ b/lib/private/files/mount/mountpoint.php
@@ -29,6 +29,7 @@ namespace OC\Files\Mount;
 use \OC\Files\Filesystem;
 use OC\Files\Storage\StorageFactory;
 use OC\Files\Storage\Storage;
+use OC\Files\Storage\Wrapper\Wrapper;
 use OCP\Files\Mount\IMountPoint;
 
 class MountPoint implements IMountPoint {
@@ -92,7 +93,11 @@ class MountPoint implements IMountPoint {
 		$this->mountPoint = $mountpoint;
 		if ($storage instanceof Storage) {
 			$this->class = get_class($storage);
-			$this->storage = $this->loader->wrap($this, $storage);
+			$this->storage = $storage;
+			// only wrap if not already wrapped
+			if (!($this->storage instanceof Wrapper)) {
+				$this->storage = $this->loader->wrap($this, $this->storage);
+			}
 		} else {
 			// Update old classes to new namespace
 			if (strpos($storage, 'OC_Filestorage_') !== false) {
diff --git a/tests/lib/files/mount/mountpoint.php b/tests/lib/files/mount/mountpoint.php
index 29610e6058da8954ea3a7c462ec9aff5bac0f79d..d758c1b8d4d735ce8e9e73f2124203a302e43e71 100644
--- a/tests/lib/files/mount/mountpoint.php
+++ b/tests/lib/files/mount/mountpoint.php
@@ -70,4 +70,25 @@ class MountPoint extends \Test\TestCase {
 		// storage wrapper never called
 		$this->assertFalse($called);
 	}
+
+	public function testWrappedStorage() {
+		$storage = $this->getMockBuilder('\OC\Files\Storage\Wrapper\Wrapper')
+			->disableOriginalConstructor()
+			->getMock();
+
+		$loader = $this->getMock('\OCP\Files\Storage\IStorageFactory');
+		$loader->expects($this->never())
+			->method('getInstance');
+		$loader->expects($this->never())
+			->method('wrap');
+
+		$mountPoint = new \OC\Files\Mount\MountPoint(
+			$storage,
+			'/mountpoint',
+			null,
+			$loader
+		);
+
+		$this->assertEquals($storage, $mountPoint->getStorage());
+	}
 }