--- openafs-1.4.10/src/afs/LINUX/osi_cred.c.orig	2009-06-12 02:03:13.000000000 -0400
+++ openafs-1.4.10/src/afs/LINUX/osi_cred.c	2009-06-12 02:03:16.000000000 -0400
@@ -104,6 +104,12 @@
 #if defined(STRUCT_TASK_HAS_CRED)
     struct cred *new_creds;
 
+    /* If our current task doesn't have identical real and effective
+     * credentials, commit_cred won't let us change them, so we just
+     * bail here.
+     */
+    if (current->cred != current->real_cred)
+        return;
     new_creds = prepare_creds();
     new_creds->fsuid = cr->cr_uid;
     new_creds->uid = cr->cr_ruid;
