diff -Nbur gnome-keyring-2.22.0.old/pam/gkr-pam-module.c gnome-keyring-2.22.0/pam/gkr-pam-module.c
--- gnome-keyring-2.22.0.old/pam/gkr-pam-module.c	2008-02-13 22:07:21.000000000 +0100
+++ gnome-keyring-2.22.0/pam/gkr-pam-module.c	2008-03-16 12:39:41.000000000 +0100
@@ -773,6 +773,7 @@
 		return PAM_SERVICE_ERR;
 	}
 		
+#if 0
 	/* Look up the password */
 	ret = pam_get_item (ph, PAM_AUTHTOK, (const void**)&password);
 	if (ret != PAM_SUCCESS || password == NULL) {
@@ -783,6 +784,24 @@
 			        pam_strerror (ph, ret));
 		return PAM_SUCCESS;
 	}
+#else
+	/* Look up the password */
+	ret = pam_get_item (ph, PAM_AUTHTOK, (const void**)&password);
+	if (ret != PAM_SUCCESS || password == NULL) {
+		ret = prompt_password (ph);
+		if (ret != PAM_SUCCESS) {
+			syslog (GKR_LOG_ERR, "gkr-pam: couldn't get the password from user: %s", 
+			        pam_strerror (ph, ret));
+			return PAM_AUTH_ERR;
+		}
+		ret = pam_get_item (ph, PAM_AUTHTOK, (const void**)&password);
+		if (ret != PAM_SUCCESS || password == NULL) {
+			syslog (GKR_LOG_ERR, "gkr-pam: couldn't get the password from user: %s", 
+			        ret == PAM_SUCCESS ? "password was null" : pam_strerror (ph, ret));
+			return PAM_AUTHTOK_RECOVER_ERR;
+		}
+	}
+#endif
 
 	started_daemon = 0;
 
