diff --git a/lib/private/user.php b/lib/private/user.php
index 3c23c19b015cd87487d8ec90f12f03dabe2b476f..2358f4a14e43290dedd88ad64f3361b9130d74c4 100644
--- a/lib/private/user.php
+++ b/lib/private/user.php
@@ -211,9 +211,6 @@ class OC_User {
 
 				// Delete the users entry in the storage table
 				\OC\Files\Cache\Storage::remove('home::' . $uid);
-
-				// Remove it from the Cache
-				self::getManager()->delete($uid);
 			}
 
 			return true;
diff --git a/lib/private/user/manager.php b/lib/private/user/manager.php
index 5c155c27abab6cd4a1ea3ef8672ab7d8a52e24a1..4d1612a35cec0df0828dcf35593a5d38cbc596cd 100644
--- a/lib/private/user/manager.php
+++ b/lib/private/user/manager.php
@@ -46,17 +46,17 @@ class Manager extends PublicEmitter implements IUserManager {
 	 */
 	public function __construct($config = null) {
 		$this->config = $config;
-		$cachedUsers = $this->cachedUsers;
+		$cachedUsers = &$this->cachedUsers;
 		$this->listen('\OC\User', 'postDelete', function ($user) use (&$cachedUsers) {
-			$i = array_search($user, $cachedUsers);
-			if ($i !== false) {
-				unset($cachedUsers[$i]);
-			}
+			/** @var \OC\User\User $user */
+			unset($cachedUsers[$user->getUID()]);
 		});
 		$this->listen('\OC\User', 'postLogin', function ($user) {
+			/** @var \OC\User\User $user */
 			$user->updateLastLoginTimestamp();
 		});
 		$this->listen('\OC\User', 'postRememberedLogin', function ($user) {
+			/** @var \OC\User\User $user */
 			$user->updateLastLoginTimestamp();
 		});
 	}
@@ -134,20 +134,6 @@ class Manager extends PublicEmitter implements IUserManager {
 		return ($user !== null);
 	}
 
-	/**
-	 * remove deleted user from cache
-	 *
-	 * @param string $uid
-	 * @return bool
-	 */
-	public function delete($uid) {
-		if (isset($this->cachedUsers[$uid])) {
-			unset($this->cachedUsers[$uid]);
-			return true;
-		}
-		return false;
-	}
-
 	/**
 	 * Check if the password is valid for the user
 	 *
diff --git a/tests/lib/app.php b/tests/lib/app.php
index e538ebec8a0fb2f66cb487e34167ae26272783a4..5bce3b8c3e62a314a63b8fd5eeaf15757ca31040 100644
--- a/tests/lib/app.php
+++ b/tests/lib/app.php
@@ -360,10 +360,7 @@ class Test_App extends PHPUnit_Framework_TestCase {
 		$user1->delete();
 		$user2->delete();
 		$user3->delete();
-		// clear user cache...
-		$userManager->delete(self::TEST_USER1);
-		$userManager->delete(self::TEST_USER2);
-		$userManager->delete(self::TEST_USER3);
+
 		$group1->delete();
 		$group2->delete();
 	}
@@ -399,8 +396,6 @@ class Test_App extends PHPUnit_Framework_TestCase {
 		\OC_User::setUserId(null);
 
 		$user1->delete();
-		// clear user cache...
-		$userManager->delete(self::TEST_USER1);
 	}
 
 	/**
diff --git a/tests/lib/user/manager.php b/tests/lib/user/manager.php
index fd0931af7e4ef834fed1b80097733f80c3fef073..15b28e61bd5aa2c4e8dd84994204ceb5a81fe753 100644
--- a/tests/lib/user/manager.php
+++ b/tests/lib/user/manager.php
@@ -416,6 +416,17 @@ class Manager extends \PHPUnit_Framework_TestCase {
 
 		$users = array_shift($result);
 		//users from backends shall be summed up
-		$this->assertEquals(7+16, $users);
+		$this->assertEquals(7 + 16, $users);
+	}
+
+	public function testDeleteUser() {
+		$manager = new \OC\User\Manager();
+		$backend = new \OC_User_Dummy();
+
+		$backend->createUser('foo', 'bar');
+		$manager->registerBackend($backend);
+		$this->assertTrue($manager->userExists('foo'));
+		$manager->get('foo')->delete();
+		$this->assertFalse($manager->userExists('foo'));
 	}
 }