Be a little more anal about the definition of these...

diff --git a/klibc/setresgid.c b/klibc/setresgid.c
index 5a6634e..f1a8c6b 100644
--- a/klibc/setresgid.c
+++ b/klibc/setresgid.c
@@ -15,11 +15,15 @@
 
 int setresgid(gid_t a0, gid_t a1, gid_t a2)
 {
-  uint32_t x0 = (a0 == (gid_t)-1) ? (uint32_t)-1 : a0;
-  uint32_t x1 = (a1 == (gid_t)-1) ? (uint32_t)-1 : a1;
-  uint32_t x2 = (a2 == (gid_t)-1) ? (uint32_t)-1 : a2;
-
-  return setresgid32(x0,x1,x2);
+  if ( sizeof(gid_t) == sizeof(uint32_t) ) {
+    return setresgid32(a0,a1,a2);
+  } else {
+    uint32_t x0 = (a0 == (gid_t)-1) ? (uint32_t)-1 : a0;
+    uint32_t x1 = (a1 == (gid_t)-1) ? (uint32_t)-1 : a1;
+    uint32_t x2 = (a2 == (gid_t)-1) ? (uint32_t)-1 : a2;
+    
+    return setresgid32(x0,x1,x2);
+  }
 }
 
 #endif
diff --git a/klibc/setresuid.c b/klibc/setresuid.c
index 5a4a62c..a587acb 100644
--- a/klibc/setresuid.c
+++ b/klibc/setresuid.c
@@ -15,11 +15,15 @@
 
 int setresuid(uid_t a0, uid_t a1, uid_t a2)
 {
-  uint32_t x0 = (a0 == (uid_t)-1) ? (uint32_t)-1 : a0;
-  uint32_t x1 = (a1 == (uid_t)-1) ? (uint32_t)-1 : a1;
-  uint32_t x2 = (a2 == (uid_t)-1) ? (uint32_t)-1 : a2;
-
-  return setresuid32(x0,x1,x2);
+  if ( sizeof(uid_t) == sizeof(uint32_t) ) {
+    return setresuid32(a0,a1,a2);
+  } else {
+    uint32_t x0 = (a0 == (uid_t)-1) ? (uint32_t)-1 : a0;
+    uint32_t x1 = (a1 == (uid_t)-1) ? (uint32_t)-1 : a1;
+    uint32_t x2 = (a2 == (uid_t)-1) ? (uint32_t)-1 : a2;
+    
+    return setresuid32(x0,x1,x2);
+  }
 }
 
 #endif