diff --git a/src/api/identity.rs b/src/api/identity.rs
index 6f1155bb1fdbb67e8c992a6c327474c74fceb7c8..9f3cd1bf89dea81660afb97c21b19f9e4bc83ff7 100644
--- a/src/api/identity.rs
+++ b/src/api/identity.rs
@@ -268,7 +268,9 @@ async fn _password_login(
     }
 
     // register push device
-    register_push_device(&mut device, conn).await?;
+    if !new_device {
+        register_push_device(&mut device, conn).await?;
+    }
 
     // Common
     // ---