diff --git a/test/async.js b/test/async.js
index <HASH>..<HASH> 100644
--- a/test/async.js
+++ b/test/async.js
@@ -463,21 +463,26 @@ describe("async generator functions", function() {
     var returned = new Error("returned rejection");
 
     async function *gen() {
-      assert.strictEqual(yield Promise.reject(yielded), "first sent");
-      assert.strictEqual(yield "middle", "second sent");
-      return Promise.reject(returned);
+      assert.strictEqual(yield "first yielded", "first sent");
+      try {
+        assert.strictEqual(yield Promise.reject(yielded), "not reached");
+      } catch (e) {
+        assert.strictEqual(yield e, "second sent");
+        return Promise.reject(returned);
+      }
     }
 
     var iter = gen();
 
     return iter.next().then(function(result) {
-      assert.ok(false, "should have yielded a rejected Promise");
-    }, function(error) {
-      assert.strictEqual(error, yielded);
+      assert.deepEqual(result, {
+        value: "first yielded",
+        done: false
+      });
       return iter.next("first sent");
-    }).then(function(result) {
+    }).then(function (result) {
       assert.deepEqual(result, {
-        value: "middle",
+        value: yielded,
         done: false
       });
       return iter.next("second sent");
Rewrite async generator test to pass natively.