diff --git a/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/ExecuteAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/ExecuteAction.java
index c4089b0..3cd0d60 100644
--- a/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/ExecuteAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/ExecuteAction.java
@@ -37,11 +37,11 @@
     protected Object doExecute() throws Exception {
         ProcessBuilder builder = new ProcessBuilder(args);
 
-        log.info("Executing: {}", builder.command());
+        PumpStreamHandler handler = new PumpStreamHandler(System.in, System.out, System.err);
 
+        log.info("Executing: {}", builder.command());
         Process p = builder.start();
 
-        PumpStreamHandler handler = new PumpStreamHandler(System.in, System.out, System.err);
         handler.attach(p);
         handler.start();
 
@@ -54,7 +54,7 @@
 
         handler.stop();
 
-        return status;
+        return null;
     }
 
 }
diff --git a/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/utils/StreamPumper.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/utils/StreamPumper.java
index 1cb35b7..9d15286 100644
--- a/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/utils/StreamPumper.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/utils/StreamPumper.java
@@ -105,13 +105,20 @@
 
         int length;
         try {
-            while ((length = in.read(buf)) > 0 && !finish) {
-                out.write(buf, 0, length);
-                if (autoflush) {
-                    out.flush();
+            do {
+                while (in.available() > 0 && !finish) {
+                    length = in.read(buf);
+                    if (length < 1 ) {
+                        break;
+                    }
+                    out.write(buf, 0, length);
+                    if (autoflush) {
+                        out.flush();
+                    }
                 }
-            }
-            out.flush();
+                out.flush();
+                Thread.sleep(200);  // Pause to avoid tight loop if external proc is slow
+            } while (!finish && closeWhenExhausted);
         }
         catch (Exception e) {
             synchronized (this) {
