Allow code objects to be passed to run() and eval().
diff --git a/Lib/bdb.py b/Lib/bdb.py
index 6d0536d..b2c827c 100644
--- a/Lib/bdb.py
+++ b/Lib/bdb.py
@@ -7,6 +7,7 @@
 # And of course... you can roll your own!
 
 import sys
+import types
 
 BdbQuit = 'bdb.BdbQuit' # Exception to give up completely
 
@@ -278,9 +279,11 @@
 			locals = globals
 		self.reset()
 		sys.settrace(self.trace_dispatch)
+		if type(cmd) <> types.CodeType:
+			cmd = cmd+'\n'
 		try:
 			try:
-				exec cmd + '\n' in globals, locals
+				exec cmd in globals, locals
 			except BdbQuit:
 				pass
 		finally:
@@ -295,9 +298,11 @@
 			locals = globals
 		self.reset()
 		sys.settrace(self.trace_dispatch)
+		if type(expr) <> types.CodeType:
+			expr = expr+'\n'
 		try:
 			try:
-				return eval(expr + '\n', globals, locals)
+				return eval(expr, globals, locals)
 			except BdbQuit:
 				pass
 		finally: