Index: tests/exceptions/pingpong_nonlocal.cfa
===================================================================
--- tests/exceptions/pingpong_nonlocal.cfa	(revision f0c9c9b16cd1d7a36d8412b7e46a990e61d51543)
+++ tests/exceptions/pingpong_nonlocal.cfa	(revision f6e8c672a67785468988dfd68943c378679cbddf)
@@ -2,7 +2,7 @@
 #include <thread.hfa>
 #include <mutex_stmt.hfa>
+#include <Exception.hfa>
 
-exception num_ping_pongs { int num; };
-vtable(num_ping_pongs) num_ping_pongs_vt;
+ExceptionDecl( num_ping_pongs, int num; );
 
 thread Ping_Pong {
@@ -16,5 +16,5 @@
 	this.name = name;
 	cnt = 0;
-	?{}( except, &num_ping_pongs_vt, 0 );
+	?{}( except, ExceptionArgs( num_ping_pongs, 0 ) );
 }
 
@@ -29,5 +29,5 @@
 		for () {
 			while( ! poll( this ) ) { yield(); }
-            inc_resume_at( cnt );
+			inc_resume_at( cnt );
 		}
 	} catchResume( num_ping_pongs * e; e->num < numtimes ) {
@@ -37,5 +37,5 @@
 		mutex( sout ) sout | name | "catch" | cnt | e->num;
 		if ( e->num == numtimes ) {
-            inc_resume_at( e->num );
+			inc_resume_at( e->num );
 		}
 	}
@@ -49,6 +49,5 @@
 		&ping.partner = &pong;							// create cycle
 		&pong.partner = &ping;
-		num_ping_pongs except{ &num_ping_pongs_vt, 0 };
-		resumeAt( pong, except );
+		resumeAt( pong, ExceptionInst( num_ping_pongs, 0 ) );
 	}
 	sout | "main end";
