--- pam/gkr-pam-client.c.orig	2008-10-07 12:25:23.000000000 -0400
+++ pam/gkr-pam-client.c	2008-10-07 12:38:36.000000000 -0400
@@ -96,12 +96,12 @@ check_peer_same_uid (int sock)
         struct xucred xuc;
         socklen_t xuc_len = sizeof (xuc);
 
-	if (getsockopt (sock, SOL_SOCKET, LOCAL_PEERCRED, &xuc, &xuc_len) == 0 && 
-	    xuc_len == sizeof (xuc)) {
+	if (getsockopt (sock, 0, LOCAL_PEERCRED, &xuc, &xuc_len) == 0 && 
+	    xuc.cr_version == XUCRED_VERSION) {
 	    	uid = xuc.cr_uid;
 	} else {
 		syslog (GKR_LOG_ERR, "could not get gnome-keyring-daemon socket credentials, "
-		        "(returned len %d/%d)\n", xuc_len, (int)sizeof (xuc));
+		        "(returned version %d/%d)\n", xuc.cr_version, XUCRED_VERSION);
 		return -1;   
 	}
 	
