--- ./src/mount_davfs.c.orig	2011-06-21 16:24:15.760465627 +0200
+++ ./src/mount_davfs.c	2011-06-21 17:27:07.333944822 +0200
@@ -861,14 +861,19 @@
     if (!grp)
         error(EXIT_FAILURE, errno, _("group %s does not exist"),
               args->dav_group);
-    if (pw->pw_gid != grp->gr_gid) {
-        char **members = grp->gr_mem;
-        while (*members && strcmp(*members, pw->pw_name) != 0)
-            members++;
-        if (!*members)
-            error(EXIT_FAILURE, 0, _("user %s must be member of group %s"),
-                  pw->pw_name, grp->gr_name);
+
+    gid_t gidset[NGROUPS_MAX];
+    int n, max;
+    max = getgroups(NGROUPS_MAX, gidset);
+    if (-1==max) error(EXIT_FAILURE, errno, "error in getgroups");
+    for(n = 0; n < max; n++) {
+      if (grp->gr_gid == gidset[n]) break;
     }
+    if (n==max)
+        error(EXIT_FAILURE, 0, _("user %s must be member of group %s"),
+        pw->pw_name, grp->gr_name);
+    
+
     if (args->debug & DAV_DBG_CONFIG)
         syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
                "memeber of group %s", args->dav_group);
