--- vpopmail.xs.orig	Sun Jan 12 22:43:03 2003
+++ vpopmail.xs	Mon Jan 13 00:43:13 2003
@@ -192,6 +192,43 @@
 			croak( "oops: key %s not stored", name );
 		}
 	}
+
+	/* James Raftery <james@now.ie>  12 January 2003. */
+	/* Get at uid, gid and clear text password. */
+	/* N.B. pw_uid and pw_gid will not be defined if zero. */
+	/* SET HASH->{pw_uid} */
+	if (pwd->pw_uid != NULL) {
+		/* warn("pw_uid = %d\n", pwd->pw_uid); */
+		svval = newSViv( pwd->pw_uid );
+		/* make the string that will be the key */
+		strcpy( name, "pw_uid");
+		ssv = hv_store( h, name, strlen( name ), svval, 0 );
+		if ( ssv == NULL ) {
+			croak( "oops: key %s not stored", name );
+		}
+	}
+	/* SET HASH->{pw_gid} */
+	if (pwd->pw_gid != NULL) {
+		/* warn("pw_gid = %d\n", pwd->pw_gid); */
+		svval = newSViv( pwd->pw_gid );
+		/* make the string that will be the key */
+		strcpy( name, "pw_gid");
+		ssv = hv_store( h, name, strlen( name ), svval, 0 );
+		if ( ssv == NULL ) {
+			croak( "oops: key %s not stored", name );
+		}
+	}
+	/* SET HASH->{pw_clear_passwd} */
+	if (pwd->pw_clear_passwd != NULL) {
+		/* warn("pw_clear_passwd = %s\n", pwd->pw_clear_passwd); */
+		svval = newSVpv( pwd->pw_clear_passwd, strlen(pwd->pw_clear_passwd) );
+		/* make the string that will be the key */
+		strcpy( name, "pw_clear_passwd");
+		ssv = hv_store( h, name, strlen( name ), svval, 0 );
+		if ( ssv == NULL ) {
+			croak( "oops: key %s not stored", name );
+		}
+	}
     OUTPUT:
         RETVAL
 
