diff --git a/VectoConsole/Program.cs b/VectoConsole/Program.cs
index fc9563576742c60235696c29ba7bf613dd66a71c..6158f89de9f3593bf640858810a54e65141982c7 100644
--- a/VectoConsole/Program.cs
+++ b/VectoConsole/Program.cs
@@ -41,6 +41,7 @@ using System.Xml.Linq;
 using NLog;
 using NLog.Config;
 using NLog.Targets;
+using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
@@ -243,7 +244,6 @@ Examples:
 				timings.Add("Reading input files", stopWatch.Elapsed.TotalMilliseconds);
 				stopWatch.Reset();
 
-
 				WriteLine(@"Starting simulation runs", ConsoleColor.White);
 				if (_debugEnabled) {
 					WriteLine(@"Debug-Output is enabled, executing simulation runs sequentially", ConsoleColor.Yellow);
@@ -269,7 +269,7 @@ Examples:
 				stopWatch.Stop();
 				timings.Add("Simulation runs", stopWatch.Elapsed.TotalMilliseconds);
 
-				PrintProgress(_jobContainer.GetProgress(), args.Contains("-t"));
+				PrintProgress(_jobContainer.GetProgress(), args.Contains("-t"), force: true);
 
 				if (args.Contains("-t")) {
 					PrintTimings(timings);
@@ -343,46 +343,53 @@ Examples:
 		}
 
 		private static void PrintProgress(Dictionary<int, JobContainer.ProgressEntry> progessData,
-			bool showTiming = true)
+			bool showTiming = true, bool force = false)
 		{
-			if (_quiet) {
-				return;
-			}
+			try {
+				if (_quiet || (Console.IsOutputRedirected && !force)) {
+					return;
+				}
 
-			Console.SetCursorPosition(0, Console.CursorTop - _numLines);
-			_numLines = 0;
-			var sumProgress = 0.0;
-			foreach (var progressEntry in progessData) {
-				if (progressEntry.Value.Success) {
-					Console.ForegroundColor = ConsoleColor.Green;
-				} else if (progressEntry.Value.Error != null) {
-					Console.ForegroundColor = ConsoleColor.Red;
+				if (!Console.IsOutputRedirected) {
+					Console.SetCursorPosition(0, Console.CursorTop - _numLines);
+				}
+
+				_numLines = 0;
+				var sumProgress = 0.0;
+				foreach (var progressEntry in progessData) {
+					if (progressEntry.Value.Success) {
+						Console.ForegroundColor = ConsoleColor.Green;
+					} else if (progressEntry.Value.Error != null) {
+						Console.ForegroundColor = ConsoleColor.Red;
+					}
+					var timingString = "";
+					if (showTiming && progressEntry.Value.ExecTime > 0) {
+						timingString = string.Format("{0,9:F2}s", progressEntry.Value.ExecTime / 1000.0);
+					}
+					var runName = string.Format("{0} {1} {2}", progressEntry.Value.RunName, progressEntry.Value.CycleName,
+						progressEntry.Value.RunSuffix);
+					Console.WriteLine(@"{0,-60} {1,8:P}{2}", runName, progressEntry.Value.Progress, timingString);
+					Console.ResetColor();
+					sumProgress += progressEntry.Value.Progress;
+					_numLines++;
 				}
-				var timingString = "";
-				if (showTiming && progressEntry.Value.ExecTime > 0) {
-					timingString = string.Format("{0,9:F2}s", progressEntry.Value.ExecTime / 1000.0);
+				sumProgress /= _numLines;
+				var spinner = "/-\\|"[ProgessCounter++ % 4];
+				var bar = new string('#', (int)(sumProgress * 100.0 / 2));
+				Console.WriteLine(@"   {2}   [{1,-50}]  [{0,7:P}]", sumProgress, bar, spinner);
+
+				if (WarningMessages.Any()) {
+					Console.ForegroundColor = ConsoleColor.Yellow;
+					Console.WriteLine(@"Warnings: {0,5}", WarningMessages.Count);
+					Console.ResetColor();
+				} else {
+					Console.WriteLine("");
 				}
-				var runName = string.Format("{0} {1} {2}", progressEntry.Value.RunName, progressEntry.Value.CycleName,
-					progressEntry.Value.RunSuffix);
-				Console.WriteLine(@"{0,-60} {1,8:P}{2}", runName, progressEntry.Value.Progress, timingString);
-				Console.ResetColor();
-				sumProgress += progressEntry.Value.Progress;
-				_numLines++;
-			}
-			sumProgress /= _numLines;
-			var spinner = "/-\\|"[ProgessCounter++ % 4];
-			var bar = new string('#', (int)(sumProgress * 100.0 / 2));
-			Console.WriteLine(@"   {2}   [{1,-50}]  [{0,7:P}]", sumProgress, bar, spinner);
 
-			if (WarningMessages.Any()) {
-				Console.ForegroundColor = ConsoleColor.Yellow;
-				Console.WriteLine(@"Warnings: {0,5}", WarningMessages.Count);
-				Console.ResetColor();
-			} else {
-				Console.WriteLine("");
+				_numLines += 2;
+			} catch (Exception e) {
+				throw new VectoException("Error during writing progress to output: " + e.Message);
 			}
-
-			_numLines += 2;
 		}
 
 		private static void PrintTimings(Dictionary<string, double> timings)