diff --git a/apps/settings/lib/Activity/Provider.php b/apps/settings/lib/Activity/Provider.php
index 5023b4af1995f22c076f83611176907063eab284..5ece4dddfc1ce4631d2b643a233c67e7bab71cca 100644
--- a/apps/settings/lib/Activity/Provider.php
+++ b/apps/settings/lib/Activity/Provider.php
@@ -41,6 +41,7 @@ class Provider implements IProvider {
 	public const PASSWORD_CHANGED_BY = 'password_changed_by';
 	public const PASSWORD_CHANGED_SELF = 'password_changed_self';
 	public const PASSWORD_RESET = 'password_changed';
+	public const PASSWORD_RESET_SELF = 'password_reset_self';
 	public const EMAIL_CHANGED_BY = 'email_changed_by';
 	public const EMAIL_CHANGED_SELF = 'email_changed_self';
 	public const EMAIL_CHANGED = 'email_changed';
@@ -105,6 +106,8 @@ class Provider implements IProvider {
 			$subject = $this->l->t('You changed your password');
 		} elseif ($event->getSubject() === self::PASSWORD_RESET) {
 			$subject = $this->l->t('Your password was reset by an administrator');
+		} elseif ($event->getSubject() === self::PASSWORD_RESET_SELF) {
+			$subject = $this->l->t('Your password was reset');
 		} elseif ($event->getSubject() === self::EMAIL_CHANGED_BY) {
 			$subject = $this->l->t('{actor} changed your email address');
 		} elseif ($event->getSubject() === self::EMAIL_CHANGED_SELF) {
@@ -143,6 +146,7 @@ class Provider implements IProvider {
 		switch ($subject) {
 			case self::PASSWORD_CHANGED_SELF:
 			case self::PASSWORD_RESET:
+			case self::PASSWORD_RESET_SELF:
 			case self::EMAIL_CHANGED_SELF:
 			case self::EMAIL_CHANGED:
 				return [];
diff --git a/apps/settings/lib/Hooks.php b/apps/settings/lib/Hooks.php
index 851f2f143dc66cf6813b858ee491a14f95f9e4a6..e4e86e278c16d23e383ca9030dfdb53c680a7d24 100644
--- a/apps/settings/lib/Hooks.php
+++ b/apps/settings/lib/Hooks.php
@@ -106,6 +106,7 @@ class Hooks {
 		$actor = $this->userSession->getUser();
 		if ($actor instanceof IUser) {
 			if ($actor->getUID() !== $user->getUID()) {
+				// Admin changed the password through the user panel
 				$this->l = $this->languageFactory->get(
 					'settings',
 					$this->config->getUserValue(
@@ -118,13 +119,21 @@ class Hooks {
 				$event->setAuthor($actor->getUID())
 					->setSubject(Provider::PASSWORD_CHANGED_BY, [$actor->getUID()]);
 			} else {
+				// User changed their password themselves through settings
 				$text = $this->l->t('Your password on %s was changed.', [$instanceUrl]);
 				$event->setAuthor($actor->getUID())
 					->setSubject(Provider::PASSWORD_CHANGED_SELF);
 			}
 		} else {
-			$text = $this->l->t('Your password on %s was reset by an administrator.', [$instanceUrl]);
-			$event->setSubject(Provider::PASSWORD_RESET);
+			if (PHP_SAPI === 'cli') {
+				// Admin used occ to reset the password
+				$text = $this->l->t('Your password on %s was reset by an administrator.', [$instanceUrl]);
+				$event->setSubject(Provider::PASSWORD_RESET);
+			} else {
+				// User reset their password from Lost page
+				$text = $this->l->t('Your password on %s was reset.', [$instanceUrl]);
+				$event->setSubject(Provider::PASSWORD_RESET_SELF);
+			}
 		}
 
 		$this->activityManager->publish($event);