Index: tests/concurrency/waituntil/channel_close.cfa
===================================================================
--- tests/concurrency/waituntil/channel_close.cfa	(revision ca995e3090a31786ce34129347ad66e6dd17c3a9)
+++ tests/concurrency/waituntil/channel_close.cfa	(revision cbbfba90c3b1a0275f1674f8286fdc599ed15bfb)
@@ -26,10 +26,10 @@
         for( ;; ) {
             if ( useAnd ) {
-                waituntil( (in << A) ) { assert( A_removes == in ); A_removes++; removes++; }
-                and waituntil( (in2 << B) ) { assert( B_removes == in2 ); B_removes++; removes++; }
+                waituntil( (in << A) ) { __atomic_thread_fence( __ATOMIC_SEQ_CST ); assert( A_removes == in ); A_removes++; removes++; }
+                and waituntil( (in2 << B) ) { __atomic_thread_fence( __ATOMIC_SEQ_CST ); assert( B_removes == in2 ); B_removes++; removes++; }
                 continue;
             }
-            waituntil( (in << A) ) { assert( A_removes == in ); A_removes++; removes++; }
-            or waituntil( (in << B) ) { assert( B_removes == in ); B_removes++; removes++; }
+            waituntil( (in << A) ) { __atomic_thread_fence( __ATOMIC_SEQ_CST ); assert( A_removes == in ); A_removes++; removes++; }
+            or waituntil( (in << B) ) { __atomic_thread_fence( __ATOMIC_SEQ_CST ); ( B_removes == in ); B_removes++; removes++; }
         }
     } catchResume ( channel_closed * e ) {} // continue to remove until would block
@@ -37,10 +37,10 @@
     try {
         for( ;; )
-            waituntil( (in << A) ) { assert( A_removes == in ); A_removes++; removes++; }
+            waituntil( (in << A) ) { __atomic_thread_fence( __ATOMIC_SEQ_CST ); assert( A_removes == in ); A_removes++; removes++; }
     } catchResume ( channel_closed * e ) {} // continue to remove until would block
     catch ( channel_closed * e ) {} 
     try {
         for( ;; )
-            waituntil( (in << B) ) { assert( B_removes == in ); B_removes++; removes++; }
+            waituntil( (in << B) ) { __atomic_thread_fence( __ATOMIC_SEQ_CST ); assert( B_removes == in ); B_removes++; removes++; }
     } catchResume ( channel_closed * e ) {} // continue to remove until would block
     catch ( channel_closed * e ) {} 
