Index: tests/concurrent/mutexstmt/.expect/locks.txt
===================================================================
--- tests/concurrent/mutexstmt/.expect/locks.txt	(revision bbe3719f51f151b5ad865f6a0ca92c072ca4f23e)
+++ tests/concurrent/mutexstmt/.expect/locks.txt	(revision 00a8e1987bc169a6b50a97b6d00f2aea4e4233e0)
@@ -3,2 +3,6 @@
 Start Test: multi lock deadlock/mutual exclusion
 End Test: multi lock deadlock/mutual exclusion
+Start Test: single scoped lock mutual exclusion
+End Test: single scoped lock mutual exclusion
+Start Test: multi scoped lock deadlock/mutual exclusion
+End Test: multi scoped lock deadlock/mutual exclusion
Index: tests/concurrent/mutexstmt/locks.cfa
===================================================================
--- tests/concurrent/mutexstmt/locks.cfa	(revision bbe3719f51f151b5ad865f6a0ca92c072ca4f23e)
+++ tests/concurrent/mutexstmt/locks.cfa	(revision 00a8e1987bc169a6b50a97b6d00f2aea4e4233e0)
@@ -59,5 +59,75 @@
 }
 
+thread T_Mutex_Scoped {};
 
+void main( T_Mutex_Scoped & this ) {
+	for (unsigned int i = 0; i < num_times; i++) {
+		{
+			scoped_lock(single_acquisition_lock) s{m1};
+			count++;
+		}
+		{
+			scoped_lock(single_acquisition_lock) s{m1};
+			assert(!insideFlag);
+			insideFlag = true;
+			assert(insideFlag);
+			insideFlag = false;
+		}
+	}
+}
+
+thread T_Multi_Scoped {};
+
+void main( T_Multi_Scoped & this ) {
+	for (unsigned int i = 0; i < num_times; i++) {
+		{
+			scoped_lock(single_acquisition_lock) s{m1};
+			assert(!insideFlag);
+			insideFlag = true;
+			assert(insideFlag);
+			insideFlag = false;
+		}
+		{
+			scoped_lock(single_acquisition_lock) s1{m1};
+			scoped_lock(single_acquisition_lock) s2{m2};
+			scoped_lock(single_acquisition_lock) s3{m3};
+			scoped_lock(single_acquisition_lock) s4{m4};
+			scoped_lock(single_acquisition_lock) s5{m5};
+			assert(!insideFlag);
+			insideFlag = true;
+			assert(insideFlag);
+			insideFlag = false;
+		}
+		{
+			scoped_lock(single_acquisition_lock) s1{m1};
+			scoped_lock(single_acquisition_lock) s3{m3};
+			assert(!insideFlag);
+			insideFlag = true;
+			assert(insideFlag);
+			insideFlag = false;
+		}
+		{
+			scoped_lock(single_acquisition_lock) s1{m1};
+			scoped_lock(single_acquisition_lock) s2{m2};
+			scoped_lock(single_acquisition_lock) s4{m4};
+			assert(!insideFlag);
+			insideFlag = true;
+			assert(insideFlag);
+			insideFlag = false;
+		}
+		{
+			scoped_lock(single_acquisition_lock) s1{m1};
+			scoped_lock(single_acquisition_lock) s3{m3};
+			scoped_lock(single_acquisition_lock) s4{m4};
+			scoped_lock(single_acquisition_lock) s5{m5};
+			assert(!insideFlag);
+			insideFlag = true;
+			assert(insideFlag);
+			insideFlag = false;
+		}
+	}
+}
+
+int num_tasks = 10;
 int main() {
 	processor p[10];
@@ -67,4 +137,5 @@
 		T_Mutex t[10];
 	}
+	assert(count == num_tasks * num_times);
 	printf("End Test: single lock mutual exclusion\n");
 	printf("Start Test: multi lock deadlock/mutual exclusion\n");
@@ -73,3 +144,16 @@
 	}
 	printf("End Test: multi lock deadlock/mutual exclusion\n");
+	
+	count = 0;
+	printf("Start Test: single scoped lock mutual exclusion\n");
+	{
+		T_Mutex_Scoped t[10];
+	}
+	assert(count == num_tasks * num_times);
+	printf("End Test: single scoped lock mutual exclusion\n");
+	printf("Start Test: multi scoped lock deadlock/mutual exclusion\n");
+	{
+		T_Multi_Scoped t[10];
+	}
+	printf("End Test: multi scoped lock deadlock/mutual exclusion\n");	
 }
