diff --git a/Lib/profile.py b/Lib/profile.py
index 93e665f..1253b66 100755
--- a/Lib/profile.py
+++ b/Lib/profile.py
@@ -252,13 +252,13 @@
         if self.cur and frame.f_back is not self.cur[-2]:
             rt, rtt, rct, rfn, rframe, rcur = self.cur
             if not isinstance(rframe, Profile.fake_frame):
-                if rframe.f_back is not frame.f_back:
-                    print rframe, rframe.f_back
-                    print frame, frame.f_back
-                    raise "Bad call", self.cur[-3]
+                assert rframe.f_back is frame.f_back, ("Bad call", rfn,
+                                                       rframe, rframe.f_back,
+                                                       frame, frame.f_back)
                 self.trace_dispatch_return(rframe, 0)
-                if self.cur and frame.f_back is not self.cur[-2]:
-                    raise "Bad call[2]", self.cur[-3]
+                assert (self.cur is None or \
+                        frame.f_back is self.cur[-2]), ("Bad call",
+                                                        self.cur[-3])
         fcode = frame.f_code
         fn = (fcode.co_filename, fcode.co_firstlineno, fcode.co_name)
         self.cur = (t, 0, 0, fn, frame, self.cur)
@@ -272,10 +272,8 @@
 
     def trace_dispatch_return(self, frame, t):
         if frame is not self.cur[-2]:
-            if frame is self.cur[-2].f_back:
-                self.trace_dispatch_return(self.cur[-2], 0)
-            else:
-                raise "Bad return", self.cur[-3]
+            assert frame is self.cur[-2].f_back, ("Bad return", self.cur[-3])
+            self.trace_dispatch_return(self.cur[-2], 0)
 
         # Prefix "r" means part of the Returning or exiting frame
         # Prefix "p" means part of the Previous or older frame
@@ -311,7 +309,7 @@
         }
 
 
-    # The next few function play with self.cmd. By carefully preloading
+    # The next few functions play with self.cmd. By carefully preloading
     # our parallel stack, we can force the profiled result to include
     # an arbitrary string as the name of the calling function.
     # We use self.cmd as that string, and the resulting stats look
