diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php
index b337c3c710892afbdf9e7cdbdd04c9519a7d4cb7..478643e939b1cb431624d5c8d0f10aaf607e6deb 100644
--- a/lib/private/Share20/Manager.php
+++ b/lib/private/Share20/Manager.php
@@ -145,25 +145,13 @@ class Manager implements IManager {
 			return;
 		}
 
+		// Let others verify the password
 		try {
 			$event = new GenericEvent($password);
 			$this->eventDispatcher->dispatch('OCP\PasswordPolicy::validate', $event);
 		} catch (HintException $e) {
 			throw new \Exception($e->getHint());
 		}
-
-		// Let others verify the password
-		$accepted = true;
-		$message = '';
-		\OCP\Util::emitHook('\OC\Share', 'verifyPassword', [
-				'password' => $password,
-				'accepted' => &$accepted,
-				'message' => &$message
-		]);
-
-		if (!$accepted) {
-			throw new \Exception($message);
-		}
 	}
 
 	/**
diff --git a/tests/lib/Share20/ManagerTest.php b/tests/lib/Share20/ManagerTest.php
index 9f543e515928b37bff5ed5f5879cc29bc38fa082..5f7579474aada57609bc8a551dd0ac8af4c87afd 100644
--- a/tests/lib/Share20/ManagerTest.php
+++ b/tests/lib/Share20/ManagerTest.php
@@ -20,6 +20,7 @@
  */
 namespace Test\Share20;
 
+use OC\HintException;
 use OCP\Files\IRootFolder;
 use OCP\IUserManager;
 use OCP\Share\Exceptions\ShareNotFound;
@@ -38,6 +39,7 @@ use OCP\Security\IHasher;
 use OCP\Files\Mount\IMountManager;
 use OCP\IGroupManager;
 use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\EventDispatcher\GenericEvent;
 
 /**
  * Class ManagerTest
@@ -549,16 +551,12 @@ class ManagerTest extends \Test\TestCase {
 				['core', 'shareapi_enforce_links_password', 'no', 'no'],
 		]));
 
-		$hookListner = $this->getMockBuilder('Dummy')->setMethods(['listner'])->getMock();
-		\OCP\Util::connectHook('\OC\Share', 'verifyPassword', $hookListner, 'listner');
-
-		$hookListner->expects($this->once())
-			->method('listner')
-			->with([
-				'password' => 'password',
-				'accepted' => true,
-				'message' => ''
-			]);
+		$this->eventDispatcher->expects($this->once())->method('dispatch')
+			->willReturnCallback(function($eventName, GenericEvent $event) {
+				$this->assertSame('OCP\PasswordPolicy::validate', $eventName);
+				$this->assertSame('password', $event->getSubject());
+			}
+			);
 
 		$result = $this->invokePrivate($this->manager, 'verifyPassword', ['password']);
 		$this->assertNull($result);
@@ -573,8 +571,14 @@ class ManagerTest extends \Test\TestCase {
 				['core', 'shareapi_enforce_links_password', 'no', 'no'],
 		]));
 
-		$dummy = new DummyPassword();
-		\OCP\Util::connectHook('\OC\Share', 'verifyPassword', $dummy, 'listner');
+		$this->eventDispatcher->expects($this->once())->method('dispatch')
+			->willReturnCallback(function($eventName, GenericEvent $event) {
+				$this->assertSame('OCP\PasswordPolicy::validate', $eventName);
+				$this->assertSame('password', $event->getSubject());
+				throw new HintException('message', 'password not accepted');
+			}
+			);
+
 		$this->invokePrivate($this->manager, 'verifyPassword', ['password']);
 	}
 
@@ -2539,13 +2543,6 @@ class ManagerTest extends \Test\TestCase {
 	}
 }
 
-class DummyPassword {
-	public function listner($array) {
-		$array['accepted'] = false;
-		$array['message'] = 'password not accepted';
-	}
-}
-
 class DummyFactory implements IProviderFactory {
 
 	/** @var IShareProvider */