diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index ebaa9c514521fd8bf72cb53812d80349cb8c19a2..134b038e7e45443a1d3df3d6129250663186b9de 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -127,6 +127,25 @@ class Hooks {
         Helper::setupUser($util, $params['password']);
     }
 
+    /**
+     * @brief cleanup encryption backend upon user deleted
+     * @note This method should never be called for users using client side encryption
+     */
+    public static function postDeleteUser( $params ) {
+        $view = new \OC_FilesystemView( '/' );
+
+        // cleanup public key
+        $publicKey = '/public-keys/' . $params['uid'] . '.public.key';
+
+        // Disable encryption proxy to prevent recursive calls
+        $proxyStatus = \OC_FileProxy::$enabled;
+        \OC_FileProxy::$enabled = false;
+
+        $view->unlink($publicKey);
+
+        \OC_FileProxy::$enabled = $proxyStatus;
+    }
+
     /**
 	 * @brief Change a user's encryption passphrase
 	 * @param array $params keys: uid, password
diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php
index 3a5b2f78ce8054ab8408940d3b32d52011623888..783cebeee5b9a85e424e20f2bd2bf9e1fa1df88f 100755
--- a/apps/files_encryption/lib/helper.php
+++ b/apps/files_encryption/lib/helper.php
@@ -49,6 +49,7 @@ class Helper {
         \OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' );
         \OCP\Util::connectHook( 'OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase' );
         \OCP\Util::connectHook( 'OC_User', 'post_createUser', 'OCA\Encryption\Hooks', 'postCreateUser' );
+        \OCP\Util::connectHook( 'OC_User', 'post_deleteUser', 'OCA\Encryption\Hooks', 'postDeleteUser' );
     }
 
     /**