diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index 90a93b4c52d9c70b15c38c89ba98373b2a568b6c..e3196480457845d15dca145819af635d3b9682cf 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -208,6 +208,9 @@ class Hooks {
 	/*
 	 * @brief check if files can be encrypted to every user.
 	 */
+	/**
+	 * @param $params
+	 */
 	public static function preShared($params) {
 
 		$users = array();
@@ -229,7 +232,6 @@ class Hooks {
 				$params['run']->run = false;
 				// TODO: Make sure files_sharing provides user
 				// feedback on failed share
-				break;
 			}
 		}
 	}
diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php
index 5b5a2189a48ae09e42aeeb39e0fae8f9c5626f8a..6a1f1aef659457b3d4cf54c9f23e4f2ea862d078 100755
--- a/apps/files_encryption/tests/crypt.php
+++ b/apps/files_encryption/tests/crypt.php
@@ -51,6 +51,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase
 		$this->dataUrl = realpath(dirname(__FILE__) . '/../lib/crypt.php');
 		$this->legacyData = realpath(dirname(__FILE__) . '/legacy-text.txt');
 		$this->legacyEncryptedData = realpath(dirname(__FILE__) . '/legacy-encrypted-text.txt');
+		$this->legacyEncryptedDataKey = realpath(dirname(__FILE__) . '/encryption.key');
 		$this->randomKey = Encryption\Crypt::generateKey();
 
 		$keypair = Encryption\Crypt::createKeypair();
@@ -884,6 +885,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase
 		// tear down
 		$view->unlink($filename);
 	}
+
 // 	function testEncryption(){
 // 	
 // 		$key=uniqid();
diff --git a/apps/files_encryption/tests/encryption.key b/apps/files_encryption/tests/encryption.key
new file mode 100644
index 0000000000000000000000000000000000000000..4495cee78e257cc4ef42add0616a1071ecb43b72
--- /dev/null
+++ b/apps/files_encryption/tests/encryption.key
@@ -0,0 +1 @@
+���E_cP�6H�V�s�����
\ No newline at end of file
diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php
index a9ee8d00235f1abc7d925b477a548fb3bb2125e8..f302aa0a3ef4226be869d8176aef356bd5b05b7b 100755
--- a/apps/files_encryption/tests/share.php
+++ b/apps/files_encryption/tests/share.php
@@ -691,6 +691,70 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase
 		$this->assertTrue($util->setRecoveryForUser(0));
 	}
 
+	function testFailShareFile()
+	{
+		// login as admin
+		$this->loginHelper('admin');
+
+		// save file with content
+		$cryptedFile = file_put_contents('crypt://' . $this->filename, $this->dataShort);
+
+		// test that data was successfully written
+		$this->assertTrue(is_int($cryptedFile));
+
+		// disable encryption proxy to prevent recursive calls
+		$proxyStatus = \OC_FileProxy::$enabled;
+		\OC_FileProxy::$enabled = false;
+
+		// get the file info from previous created file
+		$fileInfo = $this->view->getFileInfo('/admin/files/' . $this->filename);
+
+		// check if we have a valid file info
+		$this->assertTrue(is_array($fileInfo));
+
+		// check if the unencrypted file size is stored
+		$this->assertGreaterThan(0, $fileInfo['unencrypted_size']);
+
+		// break users public key
+		$this->view->rename('/public-keys/user2.public.key', '/public-keys/user2.public.key_backup');
+
+		// re-enable the file proxy
+		\OC_FileProxy::$enabled = $proxyStatus;
+
+		// share the file
+		\OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, 'group1', OCP\PERMISSION_ALL);
+
+		// login as admin
+		$this->loginHelper('admin');
+
+		// check if share key for user1 not exists
+		$this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user2.shareKey'));
+
+		// disable encryption proxy to prevent recursive calls
+		$proxyStatus = \OC_FileProxy::$enabled;
+		\OC_FileProxy::$enabled = false;
+
+		// break user1 public key
+		$this->view->rename('/public-keys/user2.public.key_backup', '/public-keys/user2.public.key');
+
+		// remove share file
+		$this->view->unlink('/admin/files_encryption/share-keys/' . $this->filename . '.user2.shareKey');
+
+		// re-enable the file proxy
+		\OC_FileProxy::$enabled = $proxyStatus;
+
+		// unshare the file with user1
+		\OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, 'group1');
+
+		// check if share key not exists
+		$this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user2.shareKey'));
+
+		// cleanup
+		$this->view->unlink('/admin/files/' . $this->filename);
+	}
+
+
+
 	/**
 	 * @param $user
 	 * @param bool $create