diff --git a/lib/private/share20/manager.php b/lib/private/share20/manager.php
index 9b33e9475573e6306c03a0a92fa14558663718ef..63119edf504d7dc70a7868c65b3060fd3b3c118f 100644
--- a/lib/private/share20/manager.php
+++ b/lib/private/share20/manager.php
@@ -280,7 +280,7 @@ class Manager implements IManager {
 			'expirationDate' => &$expirationDate,
 			'accepted' => &$accepted,
 			'message' => &$message,
-			'passwordSet' => $share->getPassword() === null,
+			'passwordSet' => $share->getPassword() !== null,
 		]);
 
 		if (!$accepted) {
diff --git a/tests/lib/share20/managertest.php b/tests/lib/share20/managertest.php
index c41f0754396dd4788ea9b65a484cfd064e957b92..42610f94715840ab553f2578828a2b8378d25691 100644
--- a/tests/lib/share20/managertest.php
+++ b/tests/lib/share20/managertest.php
@@ -787,7 +787,7 @@ class ManagerTest extends \Test\TestCase {
 		$hookListner = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
 		\OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate',  $hookListner, 'listener');
 		$hookListner->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($expected) {
-			return $data['expirationDate'] == $expected;
+			return $data['expirationDate'] == $expected && $data['passwordSet'] === false;
 		}));
 
 		$res = $this->invokePrivate($this->manager, 'validateExpirationDate', [$share]);
@@ -799,10 +799,11 @@ class ManagerTest extends \Test\TestCase {
 		$hookListner = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
 		\OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate',  $hookListner, 'listener');
 		$hookListner->expects($this->once())->method('listener')->with($this->callback(function ($data) {
-			return $data['expirationDate'] === null;
+			return $data['expirationDate'] === null && $data['passwordSet'] === true;
 		}));
 
 		$share = $this->manager->newShare();
+		$share->setPassword('password');
 
 		$date = $this->invokePrivate($this->manager, 'validateExpirationDate', [$share]);