diff --git a/src/main/java/water/api/Parse2.java b/src/main/java/water/api/Parse2.java
index <HASH>..<HASH> 100644
--- a/src/main/java/water/api/Parse2.java
+++ b/src/main/java/water/api/Parse2.java
@@ -40,10 +40,13 @@ public class Parse2 extends Parse {
     try {
       // Make a new Setup, with the 'header' flag set according to user wishes.
       Key[] keys = p._keys.toArray(new Key[p._keys.size()]);
-      job_key = ParseDataset2.forkParseDataset(destination_key, keys, setup, delete_on_done.value()).self();
+      Job parseJob = ParseDataset2.forkParseDataset(destination_key, keys, setup, delete_on_done.value());
+      job_key = parseJob.self();
       // Allow the user to specify whether to block synchronously for a response or not.
-      if (_blocking.value())
-        Job.waitUntilJobEnded(job_key);
+      if (_blocking.value()) {
+        parseJob.get(); // block until the end of job
+        assert Job.isEnded(job_key) : "Job is still running but we already passed over its end. Job = " + job_key;
+      }
       return Progress2.redirect(this,job_key,destination_key);
     } catch( Throwable e) {
       return Response.error(e);
Proper blocking for job end in Parse.