use settrace() intreface
diff --git a/Lib/bdb.py b/Lib/bdb.py
index dfc41d9..a5b580b 100644
--- a/Lib/bdb.py
+++ b/Lib/bdb.py
@@ -145,8 +145,7 @@
 		self.stopframe = self.botframe
 		self.returnframe = None
 		self.quitting = 1
-		sys.trace = None
-		del sys.trace
+		sys.settrace(None)
 	
 	# Derived classes and clients can call the following functions
 	# to manipulate breakpoints.  These functions return an
@@ -245,15 +244,14 @@
 	
 	def runctx(self, cmd, globals, locals):
 		self.reset()
-		sys.trace = self.trace_dispatch
+		sys.settrace(self.trace_dispatch)
 		try:
 			exec(cmd + '\n', globals, locals)
 		except BdbQuit:
 			pass
 		finally:
 			self.quitting = 1
-			sys.trace = None
-			del sys.trace
+			sys.settrace(None)
 		# XXX What to do if the command finishes normally?