diff --git a/shell.tui/src/main/java/org/apache/felix/shell/tui/Activator.java b/shell.tui/src/main/java/org/apache/felix/shell/tui/Activator.java
index b8d025b..72d2da0 100644
--- a/shell.tui/src/main/java/org/apache/felix/shell/tui/Activator.java
+++ b/shell.tui/src/main/java/org/apache/felix/shell/tui/Activator.java
@@ -26,8 +26,8 @@
 public class Activator implements BundleActivator
 {
     private BundleContext m_context = null;
-    private ShellTuiRunnable m_runnable = null;
-    private Thread m_thread = null;
+    private volatile ShellTuiRunnable m_runnable = null;
+    private volatile Thread m_thread = null;
     private ServiceReference m_shellRef = null;
     private ShellService m_shell = null;
 
@@ -116,7 +116,7 @@
 
     private class ShellTuiRunnable implements Runnable
     {
-        private boolean stop = false;
+        private volatile boolean stop = false;
 
         public void stop()
         {
@@ -144,17 +144,18 @@
 
                 synchronized (Activator.this)
                 {
+                    if (line == null)
+                    {
+                        System.err.println("ShellTUI: No standard input...exiting.");
+                        break;
+                    }
+
                     if (m_shell == null)
                     {
                         System.out.println("No impl service available.");
                         continue;
                     }
 
-                    if (line == null)
-                    {
-                        continue;
-                    }
-
                     line = line.trim();
 
                     if (line.length() == 0)
@@ -168,7 +169,7 @@
                     }
                     catch (Exception ex)
                     {
-                        System.err.println("ShellTui: " + ex);
+                        System.err.println("ShellTUI: " + ex);
                         ex.printStackTrace();
                     }
                 }
