diff --git a/Exareme-Docker/src/exareme/exareme-master/src/main/java/madgik/exareme/master/engine/iterations/handler/NIterativeAlgorithmResultEntity.java b/Exareme-Docker/src/exareme/exareme-master/src/main/java/madgik/exareme/master/engine/iterations/handler/NIterativeAlgorithmResultEntity.java
index 0d4c136c676e30ad05493dab235754d2e52e7604..dde8e356e83e34582efcd9ea93bcd390c9d39e37 100644
--- a/Exareme-Docker/src/exareme/exareme-master/src/main/java/madgik/exareme/master/engine/iterations/handler/NIterativeAlgorithmResultEntity.java
+++ b/Exareme-Docker/src/exareme/exareme-master/src/main/java/madgik/exareme/master/engine/iterations/handler/NIterativeAlgorithmResultEntity.java
@@ -99,11 +99,15 @@ public class NIterativeAlgorithmResultEntity extends BasicHttpEntity
                     this.buffer.compact();
                     if (i < 1 && !buffering) {
                         encoder.complete();
+                        closeQuery();
+                        close();
                     }
                 } else {
                     encoder.write(ByteBuffer.wrap(
                             finalizeQueryStatus.getError().getBytes()));
                     encoder.complete();
+                    closeQuery();
+                    close();
                 }
             } else {
                 // Algorithm execution failed, notify the client.
@@ -164,13 +168,12 @@ public class NIterativeAlgorithmResultEntity extends BasicHttpEntity
                 encoder.write(buffer);
                 this.buffer.compact();
                 encoder.complete();
+                closeQuery();
+                close();
             }
         } finally {
             if (iterativeAlgorithmState != null)
                 iterativeAlgorithmState.releaseLock();
-
-            closeQuery();
-            close();
         }
     }