Index: tests/io/io-acquire.cfa
===================================================================
--- tests/io/io-acquire.cfa	(revision 3bb1292129f5be158f2a3192bf864d1ab2191cb9)
+++ tests/io/io-acquire.cfa	(revision 42daeb4e7403d43cd525897dd510b83f331ddae4)
@@ -10,6 +10,6 @@
 // Created On       : Mon Mar  1 18:40:09 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Oct  6 18:04:58 2021
-// Update Count     : 72
+// Last Modified On : Mon Jan 10 07:57:12 2022
+// Update Count     : 73
 // 
 
@@ -23,5 +23,5 @@
 
 	for ( 100 ) {										// expression protection
-		mutex(sout) sout | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
+		mutex( sout ) sout | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
 	}
 	mutex( sout ) {										// statement protection
@@ -51,5 +51,5 @@
 	int a, b, c, d, e, f, g, h, i;
 	for ( 100 ) {										// expression protection
-		mutex(sin) sin | a | b | c | d | e | f | g | h | i;
+		mutex( sin ) sin | a | b | c | d | e | f | g | h | i;
 	}
 	mutex( sin ) {										// statement protection
Index: tests/io/io-acquire2.cfa
===================================================================
--- tests/io/io-acquire2.cfa	(revision 42daeb4e7403d43cd525897dd510b83f331ddae4)
+++ tests/io/io-acquire2.cfa	(revision 42daeb4e7403d43cd525897dd510b83f331ddae4)
@@ -0,0 +1,87 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+// 
+// io-acquire.cfa -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Mon Mar  1 18:40:09 2021
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Mon Jan 10 16:10:20 2022
+// Update Count     : 74
+// 
+
+#include <fstream.hfa>
+#include <thread.hfa>
+#include <mutex_stmt.hfa>
+
+Duration default_preemption() {	return 0; }
+
+thread T {};
+void main( T & ) {
+	// output from parallel threads should not be scrambled
+
+	for ( 100 ) {										// expression protection
+		mutex( sout ) sout | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
+	}
+	mutex( sout ) {										// statement protection
+		for ( 100 ) {
+			sout | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
+		}
+	}
+	{													// duplicate protection demonstrating recursive lock
+		ofstream & h1( ofstream & os ) {				// helper
+			mutex( os ) return os | 1 | 2 | 3 | 4;		// unnecessary mutex
+		}
+		ofstream & h2( ofstream & os ) {				// helper
+			mutex( os ) return os | 6 | 7 | 8 | 9;		// unnecessary mutex
+		}
+		mutex( sout ) {									// unnecessary mutex
+			for ( 100 ) {
+				mutex( sout ) {
+					sout | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
+					sout | h1 | 5 | h2;					// refactored code
+				}
+			}
+		}
+	}
+
+	// above output used as input to parallel threads 
+
+	int a, b, c, d, e, f, g, h, i;
+	for ( 100 ) {										// expression protection
+		mutex( sin ) sin | a | b | c | d | e | f | g | h | i;
+	}
+	mutex( sin ) {										// statement protection
+		for ( 100 ) {
+			sin  | a | b | c | d | e | f | g | h | i;
+		}
+	}
+	{													// duplicate protection demonstrating recursive lock
+		ifstream & h1( ifstream & is ) {				// helper
+			mutex( is ) return is | a | b | c | d;		// unnecessary mutex
+		}
+		ifstream & h2( ifstream & is ) {				// helper
+			mutex( is ) return is | f | g | h | i;		// unnecessary mutex
+		}
+		mutex( sin ) {									// unnecessary mutex
+			for ( 5 ) {
+				mutex( sin ) {
+					sin  | a | b | c | d | e | f | g | h | i;
+					sin  | h1 | e | h2;					// refactored code
+				}
+			}
+		}
+	}
+}
+int main() {
+	processor p;
+	T t[5];
+} 
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa io-acquire2.cfa" //
+// End: //
