diff --git a/src/main/java/uk/ac/rhul/cs/javatester/SubmissionWrapper.java b/src/main/java/uk/ac/rhul/cs/javatester/SubmissionWrapper.java
index a1609af2d01bdcd5f7812cf20df49a6792b99321..f40e7636f6f3f029000bda784a8d6b50106242da 100644
--- a/src/main/java/uk/ac/rhul/cs/javatester/SubmissionWrapper.java
+++ b/src/main/java/uk/ac/rhul/cs/javatester/SubmissionWrapper.java
@@ -174,6 +174,8 @@ public class SubmissionWrapper implements AutoCloseable {
      * Close the streams and kill the submission
      */
     public void close() {
+        waitFor();
+
         flushOutputStreams();
 
         try {
@@ -527,6 +529,9 @@ public class SubmissionWrapper implements AutoCloseable {
         try {
             process.waitFor(TIMEOUT, TimeUnit.SECONDS);
         } catch (InterruptedException e) {
+            // no nothing
+        } finally {
+            // make sure it's really shutdown
             process.destroyForcibly();
         }
     }