- Changes donated by Elemental Security to make it work on AIX 5.3
  with IBM's 64-bit compiler (SF patch #1284289).  This also closes SF
  bug #105470: test_pwd fails on 64bit system (Opteron).
diff --git a/Lib/test/test_ioctl.py b/Lib/test/test_ioctl.py
index 959d16e..2b127e2 100644
--- a/Lib/test/test_ioctl.py
+++ b/Lib/test/test_ioctl.py
@@ -1,5 +1,5 @@
 import unittest
-from test_support import TestSkipped, run_unittest
+from test.test_support import TestSkipped, run_unittest
 import os, struct
 try:
     import fcntl, termios
@@ -16,19 +16,23 @@
 
 class IoctlTests(unittest.TestCase):
     def test_ioctl(self):
-        pgrp = os.getpgrp()
+        # If this process has been put into the background, TIOCGPGRP returns
+        # the session ID instead of the process group id.
+        ids = (os.getpgrp(), os.getsid(0))
         tty = open("/dev/tty", "r")
         r = fcntl.ioctl(tty, termios.TIOCGPGRP, "    ")
-        self.assertEquals(pgrp, struct.unpack("i", r)[0])
+        rpgrp = struct.unpack("i", r)[0]
+        self.assert_(rpgrp in ids, "%s not in %s" % (rpgrp, ids))
 
     def test_ioctl_mutate(self):
         import array
         buf = array.array('i', [0])
-        pgrp = os.getpgrp()
+        ids = (os.getpgrp(), os.getsid(0))
         tty = open("/dev/tty", "r")
         r = fcntl.ioctl(tty, termios.TIOCGPGRP, buf, 1)
+        rpgrp = buf[0]
         self.assertEquals(r, 0)
-        self.assertEquals(pgrp, buf[0])
+        self.assert_(rpgrp in ids, "%s not in %s" % (rpgrp, ids))
 
 def test_main():
     run_unittest(IoctlTests)