diff -apruNU5 gawk-3.1.4.orig/awklib/eg/lib/grcat.c gawk-3.1.4/awklib/eg/lib/grcat.c
--- gawk-3.1.4.orig/awklib/eg/lib/grcat.c	2004-07-28 13:54:50.000000000 +0000
+++ gawk-3.1.4/awklib/eg/lib/grcat.c	2005-03-20 02:10:30.000000000 +0000
@@ -30,12 +30,16 @@ char **argv;
 {
     struct group *g;
     int i;
 
     while ((g = getgrent()) != NULL) {
+#if PASSWD_STRUCT_BROCKEN
+        printf("%s:%ld:", g->gr_name, (long) g->gr_gid);
+#else
         printf("%s:%s:%ld:", g->gr_name, g->gr_passwd,
                                      (long) g->gr_gid);
+#endif
         for (i = 0; g->gr_mem[i] != NULL; i++) {
             printf("%s", g->gr_mem[i]);
             if (g->gr_mem[i+1] != NULL)
                 putchar(',');
         }
diff -apruNU5 gawk-3.1.4.orig/awklib/eg/lib/pwcat.c gawk-3.1.4/awklib/eg/lib/pwcat.c
--- gawk-3.1.4.orig/awklib/eg/lib/pwcat.c	2004-07-28 13:54:50.000000000 +0000
+++ gawk-3.1.4/awklib/eg/lib/pwcat.c	2005-03-20 02:10:30.000000000 +0000
@@ -25,12 +25,18 @@ int argc;
 char **argv;
 {
     struct passwd *p;
 
     while ((p = getpwent()) != NULL)
+#if PASSWD_STRUCT_BROCKEN
+        printf("%s:%ld:%ld:%s:%s\n",
+            p->pw_name, (long) p->pw_uid,
+            (long) p->pw_gid, p->pw_dir, p->pw_shell);
+#else
         printf("%s:%s:%ld:%ld:%s:%s:%s\n",
             p->pw_name, p->pw_passwd, (long) p->pw_uid,
             (long) p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell);
+#endif
 
     endpwent();
     return 0;
 }
