diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentSynchronizationProcess.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentSynchronizationProcess.java
index 524e1048fc6d7260b1861254126e9fd43ed552ab..4280f0f31f949ae5462ebbdcee9c0a98f7a74d1b 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentSynchronizationProcess.java
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentSynchronizationProcess.java
@@ -96,17 +96,17 @@ public abstract class PersistentSynchronizationProcess<T> {
 	private void doProcess(AtomicBoolean reRun) {
 		boolean interrupted = false;
 		
-		notifier.addItem(INIT_TRANSFER_ITEM);
+		this.notifier.addItem(INIT_TRANSFER_ITEM);
 		runningTransferThreads.add(Thread.currentThread());
+		TransferFileProgressForHaaSClient notifier = DUMMY_FILE_PROGRESS;
 		try (HaaSFileTransfer tr = fileTransferSupplier.get()) {
-			TransferFileProgressForHaaSClient notifier = DUMMY_FILE_PROGRESS;
 			try {
 				tr.setProgress(notifier = getTransferFileProgress(tr));
 			} catch (InterruptedIOException e1) {
 				interrupted = true;
 			}
-			
 			this.notifier.itemDone(INIT_TRANSFER_ITEM);
+			this.notifier.done();
 			while (!interrupted && !toProcessQueue.isEmpty()) {
 				T p = toProcessQueue.poll();
 				String item = p.toString(); 
@@ -121,13 +121,13 @@ public abstract class PersistentSynchronizationProcess<T> {
 				notifier.itemDone(item);
 				reRun.set(false);
 			}
-			notifier.done();
 		} finally {
 			runningTransferThreads.remove(Thread.currentThread());
 			synchronized (this) {
 				if (startFinished) {
 					if(!interrupted && !Thread.interrupted()) {
 						processFinishedNotifier.run();
+						notifier.done();
 					} else {
 						notifyStop();
 						reRun.set(false);
@@ -135,7 +135,6 @@ public abstract class PersistentSynchronizationProcess<T> {
 				}
 			}
 		}
-		log.info("doProcess - done - " + Thread.currentThread().isInterrupted());
 	}
 
 	private void fileUploaded(T p) {
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransferImp.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransferImp.java
index 9a9fba8bca97c62abdb412833c7e7af408769ead..9aa4698c4d8fe5379f91ffeba5f63849e460725a 100644
--- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransferImp.java
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransferImp.java
@@ -62,7 +62,6 @@ class HaaSFileTransferImp implements HaaSFileTransfer {
 			String fileToDownload = "'" + ft.getSharedBasepath() + "/" + fileName + "'";
 			scpClient.download(fileToDownload, rFile, progress);
 		} catch(InterruptedIOException e) {
-			log.info("upload interrupted flag: " + Thread.currentThread().isInterrupted());
 			throw e;
 		} catch (JSchException | IOException e) {
 			throw new HaaSClientException(e);
diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/UpdatableBenchmarkJob.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/UpdatableBenchmarkJob.java
index bfaf89c81da5918089f051d1de19eb2c58056a25..7ede062c016913bd003b9c238ee52401a7678da3 100644
--- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/UpdatableBenchmarkJob.java
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/UpdatableBenchmarkJob.java
@@ -65,7 +65,7 @@ public class UpdatableBenchmarkJob extends UpdatableObservableValue<BenchmarkJob
 
 	private class P_TransferProgress implements Progress, TransferProgress {
 
-		private long start;
+		private Long start;
 		private Long remainingMiliseconds;
 		private Float remainingPercents;
 		private Supplier<Boolean> doneStatusSupplier;
@@ -92,16 +92,19 @@ public class UpdatableBenchmarkJob extends UpdatableObservableValue<BenchmarkJob
 
 		@Override
 		public synchronized void addItem(Object item) {
-			setDone(false);
-			clearProgress();
-			start = System.currentTimeMillis();
-			fireValueChangedEvent();
+			if (start == null) {
+				setDone(false);
+				clearProgress();
+				start = System.currentTimeMillis();
+				fireValueChangedEvent();
+			}
 		}
 
 		@Override
 		public synchronized void done() {
 			remainingMiliseconds = 0l;
 			remainingPercents = 0.f;
+			start = null;
 			fireValueChangedEvent();
 		}
 
diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java
index a4a6e994fad856689fea06494a2d28ceb8a4fc4f..6c50e834cb36aac52243e1dddda2d279e94a4bb0 100644
--- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java
@@ -217,9 +217,9 @@ public class BenchmarkSPIMController extends BorderPane implements CloseableCont
 			return "";
 		} else if (progress.isWorking()) {
 			Long msecs = progress.getRemainingMiliseconds();
-			return string + "ing - time remains " + (msecs != null ? RemainingTimeFormater.format(msecs) : "N/A");
+			return "Time remains " + (msecs != null ? RemainingTimeFormater.format(msecs) : "N/A");
 		} else if (progress.isDone()) {
-			return string + "ed";
+			return "Done";
 		}
 		return "N/A";
 	}
diff --git a/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java b/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java
index f3e79881244969f20ed0b5d772f73381599b5e06..b25dcae9113d6332a1008ed5fab5e52c2ea0fc8c 100644
--- a/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java
+++ b/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java
@@ -174,6 +174,8 @@ public class ScpClient implements Closeable {
 				}
 			}
 
+		} catch (ClosedByInterruptException e) {
+			throw new InterruptedIOException();
 		} finally {
 			channel.disconnect();
 		}