diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php
index 056f823c18bc4fef12bebc13af4c30df5ec90605..8d1f80c53c0272c6325534b9cbd0a5e5843c1a4a 100644
--- a/lib/private/files/storage/wrapper/encryption.php
+++ b/lib/private/files/storage/wrapper/encryption.php
@@ -349,7 +349,8 @@ class Encryption extends Wrapper {
 		if ($this->util->isExcluded($fullPath) === false) {
 
 			$size = $unencryptedSize = 0;
-			$targetExists = $this->file_exists($path);
+			$realFile = $this->util->stripPartialFileExtension($path);
+			$targetExists = $this->file_exists($realFile);
 			$targetIsEncrypted = false;
 			if ($targetExists) {
 				// in case the file exists we require the explicit module as
@@ -605,8 +606,9 @@ class Encryption extends Wrapper {
 	 */
 	protected function getHeader($path) {
 		$header = '';
-		if ($this->storage->file_exists($path)) {
-			$handle = $this->storage->fopen($path, 'r');
+		$realFile = $this->util->stripPartialFileExtension($path);
+		if ($this->storage->file_exists($realFile)) {
+			$handle = $this->storage->fopen($realFile, 'r');
 			$firstBlock = fread($handle, $this->util->getHeaderSize());
 			fclose($handle);
 			if (substr($firstBlock, 0, strlen(Util::HEADER_START)) === Util::HEADER_START) {
diff --git a/tests/lib/files/storage/wrapper/encryption.php b/tests/lib/files/storage/wrapper/encryption.php
index 520091df42d7c4ad7261159a074455e25725ae06..175713de4973bd01ec8953495461663a4beb9646 100644
--- a/tests/lib/files/storage/wrapper/encryption.php
+++ b/tests/lib/files/storage/wrapper/encryption.php
@@ -68,6 +68,17 @@ class Encryption extends \Test\Files\Storage\Storage {
 	 */
 	private $mountManager;
 
+	/**
+	 * @var \OC\Group\Manager | \PHPUnit_Framework_MockObject_MockObject
+	 */
+	private $groupManager;
+
+	/**
+	 * @var \OCP\IConfig | \PHPUnit_Framework_MockObject_MockObject
+	 */
+	private $config;
+
+
 	/** @var  integer dummy unencrypted size */
 	private $dummySize = -1;
 
@@ -84,14 +95,16 @@ class Encryption extends \Test\Files\Storage\Storage {
 			->method('getEncryptionModule')
 			->willReturn($mockModule);
 
-		$config = $this->getMockBuilder('\OCP\IConfig')
+		$this->config = $this->getMockBuilder('\OCP\IConfig')
 			->disableOriginalConstructor()
 			->getMock();
-		$groupManager = $this->getMockBuilder('\OC\Group\Manager')
+		$this->groupManager = $this->getMockBuilder('\OC\Group\Manager')
 			->disableOriginalConstructor()
 			->getMock();
 
-		$this->util = $this->getMock('\OC\Encryption\Util', ['getUidAndFilename', 'isFile', 'isExcluded'], [new View(), new \OC\User\Manager(), $groupManager, $config]);
+		$this->util = $this->getMock('\OC\Encryption\Util',
+			['getUidAndFilename', 'isFile', 'isExcluded'],
+			[new View(), new \OC\User\Manager(), $this->groupManager, $this->config]);
 		$this->util->expects($this->any())
 			->method('getUidAndFilename')
 			->willReturnCallback(function ($path) {
@@ -365,4 +378,48 @@ class Encryption extends \Test\Files\Storage\Storage {
 			array(false, true),
 		);
 	}
+
+	/**
+	 * @dataProvider dataTestGetHeader
+	 * @param $path
+	 * @param $strippedPath
+	 */
+	public function testGetHeader($path, $strippedPath) {
+
+		$sourceStorage = $this->getMockBuilder('\OC\Files\Storage\Storage')
+			->disableOriginalConstructor()->getMock();
+
+		$util = $this->getMockBuilder('\OC\Encryption\Util')
+			->setConstructorArgs([new View(), new \OC\User\Manager(), $this->groupManager, $this->config])
+			->getMock();
+
+		$instance = $this->getMockBuilder('\OC\Files\Storage\Wrapper\Encryption')
+			->setConstructorArgs(
+				[
+					[
+						'storage' => $sourceStorage,
+						'root' => 'foo',
+						'mountPoint' => '/',
+						'mount' => $this->mount
+					],
+					$this->encryptionManager, $util, $this->logger, $this->file, null, $this->keyStore, $this->update, $this->mountManager
+				]
+			)
+			->getMock();
+
+		$util->expects($this->once())->method('stripPartialFileExtension')
+			->with($path)->willReturn($strippedPath);
+		$sourceStorage->expects($this->once())->method('file_exists')
+			->with($strippedPath)->willReturn(false);
+
+		$this->invokePrivate($instance, 'getHeader', [$path]);
+	}
+
+	public function dataTestGetHeader() {
+		return array(
+			array('/foo/bar.txt', '/foo/bar.txt'),
+			array('/foo/bar.txt.part', '/foo/bar.txt'),
+			array('/foo/bar.txt.ocTransferId7437493.part', '/foo/bar.txt'),
+		);
+	}
 }