diff --git a/Lib/compileall.py b/Lib/compileall.py
index cd02851..3120284 100644
--- a/Lib/compileall.py
+++ b/Lib/compileall.py
@@ -30,7 +30,10 @@
 					print '\n[interrupt]'
 					break
 				except:
-					print 'Sorry:', sys.exc_type + ':',
+					if type(sys.exc_type) == type(''):
+						exc_type_name = sys.exc_type
+					else: exc_type_name = sys.exc_type.__name__
+					print 'Sorry:', exc_type_name + ':',
 					print sys.exc_value
 		elif maxlevels > 0 and \
 		     name != os.curdir and name != os.pardir and \
diff --git a/Lib/lib-old/tb.py b/Lib/lib-old/tb.py
index 6b9cd9a..0442ba8 100644
--- a/Lib/lib-old/tb.py
+++ b/Lib/lib-old/tb.py
@@ -74,7 +74,10 @@
 		exec(cmd+'\n', globals, locals)
 	except:
 		print '*** Exception:',
-		print sys.exc_type,
+		if type(sys.exc_type) == type(''):
+			print sys.exc_type,
+		else:
+			print sys.exc_type.__name__,
 		if sys.exc_value <> None:
 			print ':', sys.exc_value,
 		print
diff --git a/Lib/tb.py b/Lib/tb.py
index 6b9cd9a..0442ba8 100644
--- a/Lib/tb.py
+++ b/Lib/tb.py
@@ -74,7 +74,10 @@
 		exec(cmd+'\n', globals, locals)
 	except:
 		print '*** Exception:',
-		print sys.exc_type,
+		if type(sys.exc_type) == type(''):
+			print sys.exc_type,
+		else:
+			print sys.exc_type.__name__,
 		if sys.exc_value <> None:
 			print ':', sys.exc_value,
 		print
diff --git a/Lib/traceback.py b/Lib/traceback.py
index 1eec209..5ab3ec6 100644
--- a/Lib/traceback.py
+++ b/Lib/traceback.py
@@ -3,6 +3,7 @@
 import linecache
 import string
 import sys
+import types
 
 def print_tb(tb, limit = None):
 	if limit is None:
@@ -41,23 +42,29 @@
 		n = n+1
 	return list
 
-def print_exception(type, value, tb, limit = None):
+def print_exception(etype, value, tb, limit = None):
 	if tb:
 		print 'Traceback (innermost last):'
 		print_tb(tb, limit)
-	if value is None:
-		print type
+	if type(etype) == types.ClassType:
+		stype = etype.__name__
 	else:
-		if type is SyntaxError:
+		stype = etype
+	if value is None:
+		print stype
+	else:
+		if etype is SyntaxError:
 			try:
 				msg, (filename, lineno, offset, line) = value
 			except:
 				pass
 			else:
 				if not filename: filename = "<string>"
-				print '  File "%s", line %d' % (filename, lineno)
+				print '  File "%s", line %d' % \
+				      (filename, lineno)
 				i = 0
-				while i < len(line) and line[i] in string.whitespace:
+				while i < len(line) and \
+				      line[i] in string.whitespace:
 					i = i+1
 				s = '    '
 				print s + string.strip(line)
@@ -68,7 +75,7 @@
 						s = s + ' '
 				print s + '^'
 				value = msg
-		print '%s: %s' % (type, value)
+		print '%s: %s' % (stype, value)
 
 def print_exc(limit = None):
 	print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback,
