diff --git a/demo/df.py b/demo/df.py
index c9ee0122090e64a21dba9ffcb8616d28f68ad239..987ea53274e8e949e4051fa19cc93ac2c88b0e9b 100644
--- a/demo/df.py
+++ b/demo/df.py
@@ -7,27 +7,20 @@ x = controller()
 while x.loop():
     if x.re(df, "Filesystem.*\n"):
         print "Header:", df.match.group()
+        break
 
 x = controller()
 while x.loop():
     if x.re(df, "^/.* .*(?=\n)"):
         print "Normal line:", df.match.group()
-        x.cont()
-        continue
     elif x.re(df, "^/.*(?=\n)"):
         print "Mount point only:", df.match.group()
-        x.cont()
-        continue
     elif x.re(df, "^ .*(?=\n)"):
         print "Info only:", df.match.group()
-        x.cont()
-        continue
     elif x.re(df, "^\n"):
-        x.cont()
-        continue
+        pass
     elif x.re(df, "^.*(?=\n)"):
         print "Unexpected line", df.match.group()
-        x.cont()
-        continue
     elif x.eof(df):
         print "And that's all, folks!"
+        break
diff --git a/demo/dualftp.py b/demo/dualftp.py
index e7ff0f0e539056b3ea11f289864638ed25b0c684..927ac5047b0e3c96a7ccaeb27fac0474697e0e65 100644
--- a/demo/dualftp.py
+++ b/demo/dualftp.py
@@ -20,11 +20,9 @@ sunet = pcl_expect.spawn.spawn("ftp ftp.sunet.se")
 
 def name_cb(ftp):
     ftp.send("anonymous\n")
-    return pcl_expect.CONT
 
 def password_cb(ftp):
     ftp.send("ceder@lysator.liu.se\n")
-    return pcl_expect.CONT
 
 cmds = {}
 cmds[funet] = ["cd pub\n", "passive\n", "dir\n"]
@@ -47,8 +45,8 @@ def prompt_cb(ftp):
     pcl_expect.debug("STATE: cmds[sunet] = %s\n" % cmds[sunet])
     pcl_expect.debug("STATE: cmds[funet] = %s\n" % cmds[funet])
 
-    if printed < 2:
-        return pcl_expect.CONT
+    if printed == 2:
+        return pcl_expect.BREAK
 
 pcl_expect.expect_after([(pcl_expect.RE, funet, "Name.*:", name_cb),
                          (pcl_expect.RE, sunet, "Name.*:", name_cb),
@@ -62,8 +60,6 @@ while x.loop():
     if x.timeout():
         sys.stdout.write(".")
         sys.stdout.flush()
-        x.cont()
-        continue
 
 sunet.send("bye\n")
 funet.send("bye\n")
@@ -75,22 +71,20 @@ while x.loop():
     if x.eof(sunet):
         print "SUNET final output:", sunet.match
         sunet.close()
+        break
     elif x.timeout():
         sys.stdout.write(".")
         sys.stdout.flush()
-        x.cont()
-        continue
 
 x = pcl_expect.controller()
 while x.loop():
     if x.eof(funet):
         print "FUNET final output:", funet.match
         funet.close()
+        break
     elif x.timeout():
         sys.stdout.write(".")
         sys.stdout.flush()
-        x.cont()
-        continue
 
 print "SUNET time:", speed[sunet], "seconds"
 print "FUNET time:", speed[funet], "seconds"
diff --git a/demo/ftp.py b/demo/ftp.py
index 39b1f2f3892cc2fa17b81657f97852c2afb81a6c..5e7aebb520c6c7224f85f230118c992e64b6280d 100644
--- a/demo/ftp.py
+++ b/demo/ftp.py
@@ -11,28 +11,24 @@ x = pcl_expect.controller()
 while x.loop():
     if x.re(ftp, "Name.*:"):
         ftp.send("anonymous\n")
-        x.cont()
-        continue
     elif x.re(ftp, "Password:"):
         ftp.send("ceder@lysator.liu.se\n")
-        x.cont()
-        continue
     elif x.re(ftp, "ftp> "):
-        pass
+        break
 
 ftp.send("cd pub\n")
 
 x = pcl_expect.controller()
 while x.loop():
     if x.re(ftp, "(?s).*ftp> "):
-        pass
+        break
 
 ftp.send("passive\n")
 
 x = pcl_expect.controller()
 while x.loop():
     if x.re(ftp, "(?s).*ftp> "):
-        pass
+        break
 
 ftp.send("dir\n")
 
@@ -40,5 +36,6 @@ x = pcl_expect.controller()
 while x.loop():
     if x.re(ftp, "(?s).*ftp> "):
         print ftp.match.group()
+        break
 
 ftp.close()
diff --git a/demo/ftp.pyex b/demo/ftp.pyex
index ca10ff43a8e87f75631eefe51604f16ae40741fa..48bfecdf80cc4e03228a5388c0f8eeeef77ba7b8 100644
--- a/demo/ftp.pyex
+++ b/demo/ftp.pyex
@@ -10,29 +10,28 @@ ftp = pcl_expect.spawn.spawn("ftp ftp.funet.fi")
 expect:
     re(ftp, "Name.*:"):
         ftp.send("anonymous\n")
-        exp_continue
     re(ftp, "Password:"):
         ftp.send("ceder@lysator.liu.se\n")
-        exp_continue
     re(ftp, "ftp> "):
-        pass
+        break
 
 ftp.send("cd pub\n")
 
 expect:
     re(ftp, "(?s).*ftp> "):
-        pass
+        break
 
 ftp.send("passive\n")
 
 expect:
     re(ftp, "(?s).*ftp> "):
-        pass
+        break
 
 ftp.send("dir\n")
 
 expect:
     re(ftp, "(?s).*ftp> "):
         print ftp.match.group()
+	break
 
 ftp.close()
diff --git a/demo/ftptrad.py b/demo/ftptrad.py
index b6f5ae661bcd150ee8eb5db5edbe389f858c2bfe..3b3ac749b681189d1269378cd4cd5f257689e460 100644
--- a/demo/ftptrad.py
+++ b/demo/ftptrad.py
@@ -9,11 +9,9 @@ ftp = pcl_expect.spawn.spawn("ftp ftp.funet.fi")
 
 def send_anon(exp):
     exp.send("anonymous\n")
-    return pcl_expect.CONT
 
 def send_user(exp):
     exp.send("ceder@lysator.liu.se\n")
-    return pcl_expect.CONT
 
 ret, exp = pcl_expect.expect([
     (pcl_expect.RE, ftp, "Name.*:", send_anon),
diff --git a/demo/telnet.py b/demo/telnet.py
index 6e219e82d73144e7f099db0d7f55925684cbbb46..9eb4f51b1fe3e7cb130079d3b072bf1092be0795 100644
--- a/demo/telnet.py
+++ b/demo/telnet.py
@@ -30,16 +30,19 @@ x = pcl_expect.controller()
 while x.loop():
     if x.re(t, "ogin:"):
         t.send(user + "\n")
+        break
 
 x = pcl_expect.controller()
 while x.loop():
     if x.re(t, "assword:"):
         t.send(password + "\n")
+        break
 
 x = pcl_expect.controller()
 while x.loop():
     if x.re(t, ">|\\$|#"):
         t.send("uname -a\n")
+        break
     elif x.re(t, "incorrect"):
         print "Wrong password"
         t.close()
@@ -50,8 +53,10 @@ while x.loop():
     if x.re(t, "(.*)\r?\n.*(>|\\$|#)"):
         print "SYSTEM ID:", t.match.group(1)
         t.send("exit\n")
+        break
         
 x = pcl_expect.controller()
 while x.loop():
     if x.eof(t):
         t.close()
+        break