diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index f8bb16b..44cc4cb 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -642,6 +642,7 @@
                     self.assertRaises(os.error, os.setreuid, 0, 0)
                 self.assertRaises(OverflowError, os.setreuid, 1<<32, 0)
                 self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
+                os.setreuid(-1, -1)  # Does nothing, but it needs to accept -1
 
         if hasattr(os, 'setregid'):
             def test_setregid(self):
@@ -649,6 +650,7 @@
                     self.assertRaises(os.error, os.setregid, 0, 0)
                 self.assertRaises(OverflowError, os.setregid, 1<<32, 0)
                 self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
+                os.setregid(-1, -1)  # Does nothing, but it needs to accept -1
 else:
     class PosixUidGidTests(unittest.TestCase):
         pass
diff --git a/Misc/NEWS b/Misc/NEWS
index b110559..319d128 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -93,6 +93,9 @@
   thread could raise an incorrect RuntimeError about not holding the import
   lock.  The import lock is now reinitialized after fork.
 
+- Issue #7999: os.setreuid() and os.setregid() would refuse to accept a -1
+  parameter on some platforms such as OS X.
+
 Tests
 -----
 
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 26c6e46..f729e88 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -5650,9 +5650,16 @@
 	uid_t ruid, euid;
 	if (!PyArg_ParseTuple(args, "ll", &ruid_arg, &euid_arg))
 		return NULL;
-	ruid = ruid_arg;
-	euid = euid_arg;
-	if (euid != euid_arg || ruid != ruid_arg) {
+	if (ruid_arg == -1)
+		ruid = (uid_t)-1;  /* let the compiler choose how -1 fits */
+	else
+		ruid = ruid_arg;  /* otherwise, assign from our long */
+	if (euid_arg == -1)
+		euid = (uid_t)-1;
+	else
+		euid = euid_arg;
+	if ((euid_arg != -1 && euid != euid_arg) || 
+	    (ruid_arg != -1 && ruid != ruid_arg)) {
 		PyErr_SetString(PyExc_OverflowError, "user id too big");
 		return NULL;
 	}
@@ -5677,9 +5684,16 @@
 	gid_t rgid, egid;
 	if (!PyArg_ParseTuple(args, "ll", &rgid_arg, &egid_arg))
 		return NULL;
-	rgid = rgid_arg;
-	egid = egid_arg;
-	if (egid != egid_arg || rgid != rgid_arg) {
+	if (rgid_arg == -1)
+		rgid = (gid_t)-1;  /* let the compiler choose how -1 fits */
+	else
+		rgid = rgid_arg;  /* otherwise, assign from our long */
+	if (egid_arg == -1)
+		egid = (gid_t)-1;
+	else
+		egid = egid_arg;
+	if ((egid_arg != -1 && egid != egid_arg) || 
+	    (rgid_arg != -1 && rgid != rgid_arg)) {
 		PyErr_SetString(PyExc_OverflowError, "group id too big");
 		return NULL;
 	}
