Index: src/tests/monitor.c
===================================================================
--- src/tests/monitor.c	(revision 1fbab5a0107bc631a52826378ed50c1187d6284c)
+++ src/tests/monitor.c	(revision ef42b1433bc416cbf274adb71339c8b32a281a39)
@@ -13,16 +13,20 @@
 }
 
+monitor_desc * get_monitor( global_t * this ) {
+	return &this->m;
+}
+
 static global_t global;
 
-void increment( /*mutex*/ global_t * this ) {
-	monitor_desc * mon = &this->m;
-	monitor_guard_t g1 = { &mon };
-	{
-		monitor_guard_t g2 = { &mon };
-		{
-			monitor_guard_t g3 = { &mon };
-			this->value += 1;
-		}
-	}
+void increment3( global_t * mutex this ) {
+	this->value += 1;
+}
+
+void increment2( global_t * mutex this ) {
+	increment3( this );
+}
+
+void increment( global_t * mutex this ) {
+	increment2( this );
 }
 
Index: src/tests/multi-monitor.c
===================================================================
--- src/tests/multi-monitor.c	(revision 1fbab5a0107bc631a52826378ed50c1187d6284c)
+++ src/tests/multi-monitor.c	(revision ef42b1433bc416cbf274adb71339c8b32a281a39)
@@ -6,9 +6,15 @@
 static int global12, global23, global13;
 
-static monitor_desc m1, m2, m3;
+struct monitor_t {
+	monitor_desc m;
+};
 
-void increment( /*mutex*/ monitor_desc * p1, /*mutex*/ monitor_desc * p2, int * value ) {
-	monitor_desc * mons[] = { p1, p2 };
-	monitor_guard_t g = { mons, 2 };
+monitor_desc * get_monitor( monitor_t * this ) {
+	return &this->m;
+}
+
+static monitor_t m1, m2, m3;
+
+void increment( monitor_t * mutex p1, monitor_t * mutex p2, int * value ) {
 	*value += 1;
 }
