Index: codeObjectAssembler.py
===================================================================
RCS file: /usr/local/cvsroot/compyler/codeObjectAssembler.py,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -r1.72 -r1.73
--- codeObjectAssembler.py	7 Jun 2006 17:47:58 -0000	1.72
+++ codeObjectAssembler.py	7 Jun 2006 19:20:29 -0000	1.73
@@ -404,7 +404,6 @@
         if stackSize:
             self.a("ADD ESP,%s" % stackSize)
         self.debugPrintRt("PY_ERROR!",1)
-        self.debugPrintRt("PY_ERROR!",1)
 
         exitPoint = self.currentExitFunc
 
@@ -425,6 +424,7 @@
             self.a("TEST ECX,ECX")
             self.a("JNZ %s" % goodTB)
             self.a("PUSH EAX")
+            
             self.emit_none()
             self.a("MOV ECX,EAX")
             self.a("POP EAX")
@@ -432,7 +432,9 @@
             self.a.AIL(goodTB)
             self.a("PUSH ECX")            
             self.a("PUSH [EAX+44]") # curexc_value
+            self.emit_incref_var("[EAX+44]")
             self.a("PUSH [EAX+40]") # curexc_type
+            self.emit_incref_var("[EAX+40]")
             self.a("CALL PyErr_Clear")
             self.a("MOV [EAX+48],0") # set to null
             self.a("MOV [EAX+44],0") # set to null
@@ -1491,6 +1493,7 @@
         outer-next block.
         """
         self.debugPrintRt("END_FINALLY",1)
+
         dontReraise = self.getTempLabel("end_finally_dont_reraise")
         classOrString = self.getTempLabel("end_finally_class_or_string")
         #TODO: Check for int why_code (when is this used)
