Index: src/inter_call.c
===================================================================
--- src/inter_call.c	(revision 11430)
+++ src/inter_call.c	(revision 11431)
@@ -1198,19 +1198,15 @@
 parrot_pass_args_to_result(Interp *interpreter, const char *sig,
         opcode_t *dest, parrot_context_t * old_ctxp, va_list ap)
 {
-    int todo;
     struct call_state st;
 
     Parrot_init_arg_op(interpreter,
             CONTEXT(interpreter->ctx), dest, &st.dest);
-    todo = Parrot_init_arg_sig(interpreter,
+    Parrot_init_arg_sig(interpreter,
             old_ctxp, sig, PARROT_VA_TO_VAPTR(ap), &st.src);
 
-    while (todo) {
-        fetch_arg_sig(interpreter, &st);
-        Parrot_convert_arg(interpreter, &st);
-        todo = Parrot_store_arg(interpreter, &st);
-    }
+    init_call_stats(&st);
+    process_args(interpreter, &st, "params", 1);
     return dest + st.dest.n + 2;
 }
 
Index: t/pmc/coroutine.t
===================================================================
--- t/pmc/coroutine.t	(revision 11430)
+++ t/pmc/coroutine.t	(revision 11431)
@@ -123,6 +123,7 @@
     print "done\n"
     end
 _catchm:
+    get_results '(0, 0)' , P5, S0
     print "catch main\n"
     end
 
@@ -134,6 +135,7 @@
     yield
     branch corolp
 _catchc:
+    get_results '(0, 0)' , P5, S0
     print "catch coro\n"
     end
 CODE
@@ -158,6 +160,7 @@
     print "done\n"
     end
 _catchm:
+    get_results '(0, 0)' , P5, S0
     print "catch main\n"
     end
 
@@ -170,6 +173,7 @@
     find_global P17, "no_such"
     branch corolp
 _catchc:
+    get_results '(0, 0)' , P5, S0
     print "catch coro\n"
     end
 CODE
@@ -194,6 +198,7 @@
     print "done\n"
     end
 _catchm:
+    get_results '(0, 0)' , P5, S0
     print "catch main\n"
     end
 .pcc_sub _coro:
@@ -228,6 +233,7 @@
     print "done\n"
     end
 _catchm:
+    get_results '(0, 0)' , P5, S0
     print "catch main\n"
     end
 
@@ -240,7 +246,7 @@
     find_global P17, "no_such"
     branch corolp
 _catchc:
-    get_results '(0)' , P5
+    get_results '(0, 0)' , P5, S0
     print "catch coro\n"
     rethrow P5
     end
Index: t/pmc/exception.t
===================================================================
--- t/pmc/exception.t	(revision 11430)
+++ t/pmc/exception.t	(revision 11431)
@@ -541,7 +541,7 @@
 	print "skipped.\n"
 eh:
 	.local pmc exception
-	.get_results (exception)
+	.get_results (exception, $S0)
 	print "Error: "
 	print exception
 	print "\n"
