diff --git a/twosheds/twosheds.py b/twosheds/twosheds.py
index <HASH>..<HASH> 100644
--- a/twosheds/twosheds.py
+++ b/twosheds/twosheds.py
@@ -61,11 +61,6 @@ class Shell(object):
     def eval(self, line):
         if line:
             exit_code = call(line, shell=True)
-            if exit_code != 0:
-                # hide the error
-                self._raise_cursor()
-                self._clear_line()
-                return run_python(line, self.env)
 
     def interact(self):
         while True:
@@ -120,6 +115,18 @@ class Shell(object):
         readline.write_history_file(histfile)
 
 
+class PythonShell(Shell):
+    def eval(self, line):
+        if line:
+            exit_code = call(line, shell=True)
+            if exit_code != 0:
+                # hide the error
+                self._raise_cursor()
+                self._clear_line()
+                return run_python(line, self.env)
+
+
+
 def coroutine(func):
     def start(*args, **kwargs):
         cr = func(*args, **kwargs)
Separate Python from Shell

`Shell` should just be a regular shell so as to not commit users to any
particular customizations.