--- 10.7/fusefs/fuse_internal.h.orig	2011-07-11 18:30:24.000000000 -0400
+++ 10.7/fusefs/fuse_internal.h	2011-07-11 18:31:43.000000000 -0400
@@ -69,15 +69,15 @@
 int
 fuse_match_cred(kauth_cred_t daemoncred, kauth_cred_t requestcred)
 {
-    if ((daemoncred->cr_uid == requestcred->cr_uid)             &&  
-        (daemoncred->cr_uid == requestcred->cr_ruid)            &&  
+    if ((daemoncred->cr_posix.cr_uid == requestcred->cr_posix.cr_uid)             &&  
+        (daemoncred->cr_posix.cr_uid == requestcred->cr_posix.cr_ruid)            &&  
 
         // THINK_ABOUT_THIS_LATER
-        // (daemoncred->cr_uid == requestcred->cr_svuid)        &&  
+        // (daemoncred->cr_posix.cr_uid == requestcred->cr_posix.cr_svuid)        &&  
 
-        (daemoncred->cr_groups[0] == requestcred->cr_groups[0]) &&
-        (daemoncred->cr_groups[0] == requestcred->cr_rgid)      &&  
-        (daemoncred->cr_groups[0] == requestcred->cr_svgid)) {
+        (daemoncred->cr_posix.cr_groups[0] == requestcred->cr_posix.cr_groups[0]) &&
+        (daemoncred->cr_posix.cr_groups[0] == requestcred->cr_posix.cr_rgid)      &&  
+        (daemoncred->cr_posix.cr_groups[0] == requestcred->cr_posix.cr_svgid)) {
         return 0;
     }   
 
@@ -88,7 +88,7 @@
 int
 fuse_vfs_context_issuser(vfs_context_t context)
 {
-    return (vfs_context_ucred(context)->cr_uid == 0);
+    return (vfs_context_ucred(context)->cr_posix.cr_uid == 0);
 }
 
 static __inline__
--- 10.7/fusefs/fuse_ipc.c.orig	2011-07-11 18:21:29.000000000 -0400
+++ 10.7/fusefs/fuse_ipc.c	2011-07-11 18:33:40.000000000 -0400
@@ -904,8 +904,8 @@
 
     if (context) {
         ihead->pid = vfs_context_pid(context);
-        ihead->uid = vfs_context_ucred(context)->cr_uid;
-        ihead->gid = vfs_context_ucred(context)->cr_gid;
+        ihead->uid = vfs_context_ucred(context)->cr_posix.cr_uid;
+        ihead->gid = vfs_context_ucred(context)->cr_posix.cr_gid;
     } else {
         /* XXX: could use more thought */
         ihead->pid = proc_pid((proc_t)current_proc());
--- 10.7/fusefs/fuse_vfsops.c.orig	2011-07-11 18:21:29.000000000 -0400
+++ 10.7/fusefs/fuse_vfsops.c	2011-07-11 18:33:54.000000000 -0400
@@ -407,7 +407,7 @@
     }
 
     if (fuse_vfs_context_issuser(context) &&
-        vfs_context_ucred(context)->cr_uid != data->daemoncred->cr_uid) {
+        vfs_context_ucred(context)->cr_posix.cr_uid != data->daemoncred->cr_posix.cr_uid) {
         fuse_device_unlock(fdev);
         err = EPERM;
         goto out;
@@ -476,7 +476,7 @@
            vfsstatfsp->f_files  = vfs_attr.f_files;
            vfsstatfsp->f_ffree  = vfs_attr.f_ffree;
            /* vfsstatfsp->f_fsid already handled above */
-           vfsstatfsp->f_owner  = data->daemoncred->cr_uid;
+           vfsstatfsp->f_owner  = data->daemoncred->cr_posix.cr_uid;
            vfsstatfsp->f_flags  = vfs_flags(mp);
            /* vfsstatfsp->f_fstypename already handled above */
            /* vfsstatfsp->f_mntonname handled elsewhere */
--- 10.7/fusefs/fuse_vnops.c.orig	2011-07-11 18:21:29.000000000 -0400
+++ 10.7/fusefs/fuse_vnops.c	2011-07-11 18:33:57.000000000 -0400
@@ -810,8 +810,8 @@
 fake:
     bzero(vap, sizeof(*vap));
     VATTR_RETURN(vap, va_type, vnode_vtype(vp));
-    VATTR_RETURN(vap, va_uid, data->daemoncred->cr_uid);
-    VATTR_RETURN(vap, va_gid, data->daemoncred->cr_gid);
+    VATTR_RETURN(vap, va_uid, data->daemoncred->cr_posix.cr_uid);
+    VATTR_RETURN(vap, va_gid, data->daemoncred->cr_posix.cr_gid);
     VATTR_RETURN(vap, va_mode, S_IRWXU);
 
     return 0;
