diff --git a/android-ffmpeg/src/main/java/nl/bravobit/ffmpeg/FFcommandExecuteAsyncTask.java b/android-ffmpeg/src/main/java/nl/bravobit/ffmpeg/FFcommandExecuteAsyncTask.java
index 7ec21b4..9302c85 100644
--- a/android-ffmpeg/src/main/java/nl/bravobit/ffmpeg/FFcommandExecuteAsyncTask.java
+++ b/android-ffmpeg/src/main/java/nl/bravobit/ffmpeg/FFcommandExecuteAsyncTask.java
@@ -18,6 +18,7 @@ class FFcommandExecuteAsyncTask extends AsyncTask<Void, String, CommandResult> i
     private final long timeout;
     private long startTime;
     private Process process;
+    private StringBuilder outputStringBuilder = new StringBuilder();
     private String output = "";
     private boolean quitPending;
 
@@ -39,6 +40,7 @@ protected void onPreExecute() {
 
     @Override
     protected CommandResult doInBackground(Void... params) {
+        CommandResult ret = CommandResult.getDummyFailureResponse();
         try {
             process = shellCommand.run(cmd, environment);
             if (process == null) {
@@ -46,16 +48,19 @@ protected CommandResult doInBackground(Void... params) {
             }
             Log.d("Running publishing updates method");
             checkAndUpdateProcess();
-            return CommandResult.getOutputFromProcess(process);
+            ret = CommandResult.getOutputFromProcess(process);
+            outputStringBuilder.append(ret.output);
         } catch (TimeoutException e) {
             Log.e("FFmpeg binary timed out", e);
-            return new CommandResult(false, e.getMessage());
+            ret = new CommandResult(false, e.getMessage());
+            outputStringBuilder.append(ret.output);
         } catch (Exception e) {
             Log.e("Error running FFmpeg binary", e);
         } finally {
             Util.destroyProcess(process);
         }
-        return CommandResult.getDummyFailureResponse();
+        output = outputStringBuilder.toString();
+        return ret;
     }
 
     @Override
@@ -68,7 +73,6 @@ protected void onProgressUpdate(String... values) {
     @Override
     protected void onPostExecute(CommandResult commandResult) {
         if (ffmpegExecuteResponseHandler != null) {
-            output += commandResult.output;
             if (commandResult.success) {
                 ffmpegExecuteResponseHandler.onSuccess(output);
             } else {
@@ -107,7 +111,7 @@ private void checkAndUpdateProcess() throws TimeoutException, InterruptedExcepti
                         return;
                     }
 
-                    output += line + "\n";
+                    outputStringBuilder.append(line); outputStringBuilder.append("\n");
                     publishProgress(line);
                 }
             } catch (IOException e) {