Some minute changes.
diff --git a/Lib/Queue.py b/Lib/Queue.py
index 0d69777..5125fd5 100644
--- a/Lib/Queue.py
+++ b/Lib/Queue.py
@@ -7,6 +7,7 @@
 	# Initialize a queue object with a given maximum size
 	# (If maxsize is <= 0, the maximum size is infinite)
 	def __init__(self, maxsize):
+		import thread
 		self._init(maxsize)
 		self.mutex = thread.allocate_lock()
 		self.esema = thread.allocate_lock()
diff --git a/Lib/calendar.py b/Lib/calendar.py
index b4e3aad..4dfcf0c 100644
--- a/Lib/calendar.py
+++ b/Lib/calendar.py
@@ -6,7 +6,6 @@
 
 # Import functions and variables from time module
 from time import gmtime, localtime, mktime, asctime, ctime
-from time import timezone, altzone, daylight, tzname
 
 # Exception raised for bad input (with string parameter for details)
 error = 'calendar.error'
diff --git a/Lib/os.py b/Lib/os.py
index 7322fa5..bb90f2e 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -1,4 +1,4 @@
-# os.py -- either mac or posix depending on what system we're on.
+# os.py -- either mac, dos or posix depending on what system we're on.
 
 # This exports:
 # - all functions from either posix or mac, e.g., os.unlink, os.stat, etc.
@@ -14,7 +14,7 @@
 # and opendir), and leave all pathname manipulation to os.path
 # (e.g., split and join).
 
-# XXX This will need to distinguish between real posix and MS-DOS emulation
+# XXX This is incorrect if the import *path fails...
 
 try:
 	from posix import *
@@ -30,14 +30,24 @@
 	path = posixpath
 	del posixpath
 except ImportError:
-	from mac import *
-	name = 'mac'
-	curdir = ':'
-	pardir = '::'
-	sep = ':'
-	import macpath
-	path = macpath
-	del macpath
+	try:
+		from mac import *
+		name = 'mac'
+		curdir = ':'
+		pardir = '::'
+		sep = ':'
+		import macpath
+		path = macpath
+		del macpath
+	except ImportError:
+		from dos import *
+		name = 'dos'
+		curdir = '.'		# XXX doesn't always work
+		pardir = '..'		# XXX doesn't always work
+		sep = '/'		# XXX or '\\' ???
+		import dospath
+		path = dospath
+		del dospath
 
 def execl(file, *args):
 	execv(file, args)
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py
index 742477f..0988574 100644
--- a/Lib/test/test_grammar.py
+++ b/Lib/test/test_grammar.py
@@ -23,9 +23,12 @@
 print '1.1.2.1 Plain integers'
 if 0xff <> 255: raise TestFailed, 'hex int'
 if 0377 <> 255: raise TestFailed, 'octal int'
-if  2147483647   != 017777777777: raise TestFailed, 'max positive int'
-# Change the following line to "if 0:" if you have 64-bit integers
-if 1:
+if  2147483647   != 017777777777: raise TestFailed, 'large positive int'
+try:
+	from sys import maxint
+except ImportError:
+	maxint = 2147483647
+if maxint == 2147483647:
 	if -2147483647-1 != 020000000000: raise TestFailed, 'max negative int'
 	# XXX -2147483648
 	if 037777777777 != -1: raise TestFailed, 'oct -1'
@@ -37,6 +40,21 @@
 			continue
 		raise TestFailed, \
 			  'No OverflowError on huge integer literal ' + `s`
+elif eval('maxint == 9223372036854775807'):
+	if eval('9223372036854775807-1 != -01000000000000000000000'):
+		raise TestFailed, 'max negative int'
+	if eval('01777777777777777777777') != -1: raise TestFailed, 'oct -1'
+	if eval('0xffffffffffffffff') != -1: raise TestFailed, 'hex -1'
+	for s in '9223372036854775808', '02000000000000000000000', \
+		 '0x10000000000000000':
+		try:
+			x = eval(s)
+		except OverflowError:
+			continue
+		raise TestFailed, \
+			  'No OverflowError on huge integer literal ' + `s`
+else:
+	print 'Weird maxint value', maxint
 
 print '1.1.2.2 Long integers'
 x = 0L