diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php
index 661d5f7bba41d18e92f69e354ab6663dd3d60bd1..3e8a6f7885b066c8a8a3144a2ce75c29ca520f80 100644
--- a/apps/files_trashbin/lib/trash.php
+++ b/apps/files_trashbin/lib/trash.php
@@ -496,7 +496,25 @@ class Trashbin {
 			$file = $filename;
 		}
 
+		$size += self::deleteVersions($view, $file, $filename, $timestamp);
+		$size += self::deleteEncryptionKeys($view, $file, $filename, $timestamp);
+	
+		if ($view->is_dir('/files_trashbin/files/'.$file)) {
+			$size += self::calculateSize(new \OC\Files\View('/'.$user.'/files_trashbin/files/'.$file));
+		} else {
+			$size += $view->filesize('/files_trashbin/files/'.$file);
+		}
+		$view->unlink('/files_trashbin/files/'.$file);
+		$trashbinSize -= $size;
+		self::setTrashbinSize($user, $trashbinSize);
+		
+		return $size;
+	}
+
+	private static function deleteVersions($view, $file, $filename, $timestamp) {
+		$size = 0;
 		if ( \OCP\App::isEnabled('files_versions') ) {
+			$user = \OCP\User::getUser();
 			if ($view->is_dir('files_trashbin/versions/'.$file)) {
 				$size += self::calculateSize(new \OC\Files\view('/'.$user.'/files_trashbin/versions/'.$file));
 				$view->unlink('files_trashbin/versions/'.$file);
@@ -512,35 +530,37 @@ class Trashbin {
 				}
 			}
 		}
-		
-		// Take care of encryption keys
-		$parts = pathinfo($file);
-		if ( $view->is_dir('/files_trashbin/files/'.$file) ) {
-			$keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/'.$filename);
-		} else {
-			$keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/'.$filename.'.key');
-		}
-		if ($timestamp) {
-			$keyfile .= '.d'.$timestamp;
-		}
-		if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile) ) {
-			if ( $view->is_dir($keyfile) ) {
-				$size += self::calculateSize(new \OC\Files\View('/'.$user.'/'.$keyfile));
+		return $size;
+	}
+
+	private static function deleteEncryptionKeys($view, $file, $filename, $timestamp) {
+		$size = 0;
+		if (\OCP\App::isEnabled('files_encryption')) {
+			$user = \OCP\User::getUser();
+
+			if ($view->is_dir('/files_trashbin/files/' . $file)) {
+				$keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/' . $filename);
+				$sharekeys =  \OC\Files\Filesystem::normalizePath('files_trashbin/share-keys/' . $filename);
 			} else {
-				$size += $view->filesize($keyfile);
+				$keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/' . $filename . '.key');
+				$sharekeys =  \OC\Files\Filesystem::normalizePath('files_trashbin/share-keys/' . $filename . '.' . $user . '.shareKey');
+			}
+			if ($timestamp) {
+				$keyfile .= '.d' . $timestamp;
+				$sharekeys .= '.d' . $timestamp;
+			}
+			if ($view->file_exists($keyfile)) {
+				if ($view->is_dir($keyfile)) {
+					$size += self::calculateSize(new \OC\Files\View('/' . $user . '/' . $keyfile));
+					$size += self::calculateSize(new \OC\Files\View('/' . $user . '/' . $sharekeys));
+				} else {
+					$size += $view->filesize($keyfile);
+					$size += $view->filesize($sharekeys);
+				}
+				$view->unlink($keyfile);
+				$view->unlink($sharekeys);
 			}
-			$view->unlink($keyfile);
-		}
-	
-		if ($view->is_dir('/files_trashbin/files/'.$file)) {
-			$size += self::calculateSize(new \OC\Files\View('/'.$user.'/files_trashbin/files/'.$file));
-		} else {
-			$size += $view->filesize('/files_trashbin/files/'.$file);
 		}
-		$view->unlink('/files_trashbin/files/'.$file);
-		$trashbinSize -= $size;
-		self::setTrashbinSize($user, $trashbinSize);
-		
 		return $size;
 	}