Index: doc/papers/concurrency/examples/Format.c
===================================================================
--- doc/papers/concurrency/examples/Format.c	(revision 466fa013f2bfa1aed287add52d969087ca7f4721)
+++ doc/papers/concurrency/examples/Format.c	(revision e112a2422e4e6bf9a9a4884df0f64f67835cc8ff)
@@ -2,17 +2,18 @@
 
 typedef struct {
-	void * next;
+	int restart, g, b;
 	char ch;
-	int g, b;
 } Fmt;
 
 void comain( Fmt * f ) {
-	if ( __builtin_expect(f->next != 0, 1) ) goto *f->next;
-	f->next = &&s1;
+	static void * states[] = {&&s0, &&s1};
+	goto *states[f->restart];
+  s0: f->restart = 1;
 	for ( ;; ) {
 		for ( f->g = 0; f->g < 5; f->g += 1 ) {			// groups
 			for ( f->b = 0; f->b < 4; f->b += 1 ) {		// blocks
-				return;
-			  s1:;  while ( f->ch == '\n' ) return;		// ignore
+				do {
+					return;  s1: ;
+				} while ( f->ch == '\n' );				// ignore
 				printf( "%c", f->ch );					// print character
 			}
@@ -24,5 +25,5 @@
 
 int main() {
-	Fmt fmt = { NULL };
+	Fmt fmt = { 0 };
 	comain( &fmt );										// prime
 	for ( ;; ) {
