* More changes due to stricter argument passing rules
* Fixed calendar.py, mimetools.py, whrandom.py to cope with time.time()
  returning a floating point number.  (And fix old bug in calendar)
* Add recursion level to mainloop.mainloop(), to make it reentrant.
diff --git a/Lib/calendar.py b/Lib/calendar.py
index 62fb27f..13c8bbb 100644
--- a/Lib/calendar.py
+++ b/Lib/calendar.py
@@ -31,6 +31,7 @@
 # Turn seconds since epoch into calendar time
 def gmtime(secs):
 	if secs < 0: raise error, 'negative input to gmtime()'
+	secs = int(secs)
 	mins, secs = divmod(secs, 60)
 	hours, mins = divmod(mins, 60)
 	days, hours = divmod(hours, 24)
@@ -146,7 +147,7 @@
 	key = `year` + month_abbr[month]
 	try:
 		return mc_cache[key]
-	except IOError:
+	except KeyError:
 		mc_cache[key] = ret = _monthcalendar(year, month)
 		return ret