Index: doc/papers/concurrency/examples/Fib3.c
===================================================================
--- doc/papers/concurrency/examples/Fib3.c	(revision 466fa013f2bfa1aed287add52d969087ca7f4721)
+++ doc/papers/concurrency/examples/Fib3.c	(revision bcd74f39489d76f21240e6f14a5e7aae3956aa09)
@@ -2,12 +2,12 @@
 
 typedef struct {
-	int fn1, fn;
-	void * next;
+	int restart, fn1, fn;
 } Fib;
-#define FibCtor { 1, 0, NULL }
+#define FibCtor { 0, 1, 0 }
 
 Fib * comain( Fib * 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 ( ;; ) {
 		return f;
