Index: src/tests/.expect/concurrent/coroutine.txt
===================================================================
--- src/tests/.expect/concurrent/coroutine.txt	(revision be65cca71123688e2089b4d1e2440640b5fdd4d9)
+++ src/tests/.expect/concurrent/coroutine.txt	(revision be65cca71123688e2089b4d1e2440640b5fdd4d9)
@@ -0,0 +1,10 @@
+0 0
+1 1
+1 1
+2 2
+3 3
+5 5
+8 8
+13 13
+21 21
+34 34
Index: src/tests/.expect/concurrent/monitor.txt
===================================================================
--- src/tests/.expect/concurrent/monitor.txt	(revision be65cca71123688e2089b4d1e2440640b5fdd4d9)
+++ src/tests/.expect/concurrent/monitor.txt	(revision be65cca71123688e2089b4d1e2440640b5fdd4d9)
@@ -0,0 +1,1 @@
+4000000
Index: src/tests/.expect/concurrent/multi-monitor.txt
===================================================================
--- src/tests/.expect/concurrent/multi-monitor.txt	(revision be65cca71123688e2089b4d1e2440640b5fdd4d9)
+++ src/tests/.expect/concurrent/multi-monitor.txt	(revision be65cca71123688e2089b4d1e2440640b5fdd4d9)
@@ -0,0 +1,1 @@
+2000000 2000000 2000000
Index: src/tests/.expect/concurrent/thread.txt
===================================================================
--- src/tests/.expect/concurrent/thread.txt	(revision be65cca71123688e2089b4d1e2440640b5fdd4d9)
+++ src/tests/.expect/concurrent/thread.txt	(revision be65cca71123688e2089b4d1e2440640b5fdd4d9)
@@ -0,0 +1,22 @@
+User main begin
+First : Suspend No. 1
+First : Suspend No. 2
+First : Suspend No. 3
+First : Suspend No. 4
+First : Suspend No. 5
+First : Suspend No. 6
+First : Suspend No. 7
+First : Suspend No. 8
+First : Suspend No. 9
+First : Suspend No. 10
+Second : Suspend No. 1
+Second : Suspend No. 2
+Second : Suspend No. 3
+Second : Suspend No. 4
+Second : Suspend No. 5
+Second : Suspend No. 6
+Second : Suspend No. 7
+Second : Suspend No. 8
+Second : Suspend No. 9
+Second : Suspend No. 10
+User main end
Index: src/tests/.expect/coroutine.txt
===================================================================
--- src/tests/.expect/coroutine.txt	(revision 20221d4e655a7821142990aa82e5a87f5b476672)
+++ 	(revision )
@@ -1,10 +1,0 @@
-0 0
-1 1
-1 1
-2 2
-3 3
-5 5
-8 8
-13 13
-21 21
-34 34
Index: src/tests/.expect/monitor.txt
===================================================================
--- src/tests/.expect/monitor.txt	(revision 20221d4e655a7821142990aa82e5a87f5b476672)
+++ 	(revision )
@@ -1,1 +1,0 @@
-4000000
Index: src/tests/.expect/multi-monitor.txt
===================================================================
--- src/tests/.expect/multi-monitor.txt	(revision 20221d4e655a7821142990aa82e5a87f5b476672)
+++ 	(revision )
@@ -1,1 +1,0 @@
-2000000 2000000 2000000
Index: src/tests/.expect/thread.txt
===================================================================
--- src/tests/.expect/thread.txt	(revision 20221d4e655a7821142990aa82e5a87f5b476672)
+++ 	(revision )
@@ -1,22 +1,0 @@
-User main begin
-First : Suspend No. 1
-First : Suspend No. 2
-First : Suspend No. 3
-First : Suspend No. 4
-First : Suspend No. 5
-First : Suspend No. 6
-First : Suspend No. 7
-First : Suspend No. 8
-First : Suspend No. 9
-First : Suspend No. 10
-Second : Suspend No. 1
-Second : Suspend No. 2
-Second : Suspend No. 3
-Second : Suspend No. 4
-Second : Suspend No. 5
-Second : Suspend No. 6
-Second : Suspend No. 7
-Second : Suspend No. 8
-Second : Suspend No. 9
-Second : Suspend No. 10
-User main end
Index: src/tests/Makefile.am
===================================================================
--- src/tests/Makefile.am	(revision 20221d4e655a7821142990aa82e5a87f5b476672)
+++ src/tests/Makefile.am	(revision be65cca71123688e2089b4d1e2440640b5fdd4d9)
@@ -17,4 +17,14 @@
 debug=yes
 
+quick_test=vector_test avl_test operators numericConstants expression enum array typeof cast dtor-early-exit init_once
+
+if BUILD_CONCURRENCY
+concurrent=yes
+quick_test+= coroutine thread monitor
+else
+concurrent=no
+endif
+
+
 # applies to both programs
 EXTRA_FLAGS =
@@ -30,8 +40,8 @@
 
 all-local :
-	@+python test.py vector_test avl_test operators numericConstants expression enum array typeof cast dtor-early-exit init_once coroutine thread
+	@+python test.py ${quick_test}
 
 all-tests :
-	@+python test.py --all --debug=${debug}		# '@' => do not echo command (SILENT), '+' => allows recursive make from within python program
+	@+python test.py --all --debug=${debug} --concurrent=${concurrent}		# '@' => do not echo command (SILENT), '+' => allows recursive make from within python program
 
 clean-local :
@@ -39,5 +49,5 @@
 
 list :
-	@+python test.py --list
+	@+python test.py --list --concurrent=${concurrent}
 
 constant0-1DP : constant0-1.c
Index: src/tests/Makefile.in
===================================================================
--- src/tests/Makefile.in	(revision 20221d4e655a7821142990aa82e5a87f5b476672)
+++ src/tests/Makefile.in	(revision be65cca71123688e2089b4d1e2440640b5fdd4d9)
@@ -37,4 +37,5 @@
 build_triplet = @build@
 host_triplet = @host@
+@BUILD_CONCURRENCY_TRUE@am__append_1 = coroutine thread monitor
 EXTRA_PROGRAMS = fstream_test$(EXEEXT) vector_test$(EXEEXT) \
 	avl_test$(EXEEXT) constant0-1DP$(EXEEXT) \
@@ -222,4 +223,9 @@
 top_srcdir = @top_srcdir@
 debug = yes
+quick_test = vector_test avl_test operators numericConstants \
+	expression enum array typeof cast dtor-early-exit init_once \
+	$(am__append_1)
+@BUILD_CONCURRENCY_FALSE@concurrent = no
+@BUILD_CONCURRENCY_TRUE@concurrent = yes
 
 # applies to both programs
@@ -651,8 +657,8 @@
 
 all-local :
-	@+python test.py vector_test avl_test operators numericConstants expression enum array typeof cast dtor-early-exit init_once coroutine thread
+	@+python test.py ${quick_test}
 
 all-tests :
-	@+python test.py --all --debug=${debug}		# '@' => do not echo command (SILENT), '+' => allows recursive make from within python program
+	@+python test.py --all --debug=${debug} --concurrent=${concurrent}		# '@' => do not echo command (SILENT), '+' => allows recursive make from within python program
 
 clean-local :
@@ -660,5 +666,5 @@
 
 list :
-	@+python test.py --list
+	@+python test.py --list --concurrent=${concurrent}
 
 constant0-1DP : constant0-1.c
Index: src/tests/test.py
===================================================================
--- src/tests/test.py	(revision 20221d4e655a7821142990aa82e5a87f5b476672)
+++ src/tests/test.py	(revision be65cca71123688e2089b4d1e2440640b5fdd4d9)
@@ -32,22 +32,28 @@
 	return re.search("ELF\s([0-9]+)-bit", out).group(1)
 
-# reads the directory ./.expect and indentifies the tests
-def listTests():
-	machineType = getMachineType()
+def listTestsFolder(folder) :
+	path = ('./.expect/%s' % folder) if folder else './expect'
 
 	# tests directly in the .expect folder will always be processed
-	generic_list = map(lambda fname: Test(fname, fname),
-		[splitext(f)[0] for f in listdir('./.expect')
+	return map(lambda fname: Test(fname, '%s/%s' % (path, fname)),
+		[splitext(f)[0] for f in listdir( path )
 		if not f.startswith('.') and f.endswith('.txt')
 		])
 
+# reads the directory ./.expect and indentifies the tests
+def listTests( concurrent ):
+	machineType = getMachineType()
+
+	# tests directly in the .expect folder will always be processed
+	generic_list = listTestsFolder( "." )
+
 	# tests in the machineType folder will be ran only for the corresponding compiler
-	typed_list = map(lambda fname: Test( fname, "%s/%s" % (machineType, fname) ),
-		[splitext(f)[0] for f in listdir("./.expect/%s" % machineType)
-		if not f.startswith('.') and f.endswith('.txt')
-		])
+	typed_list = listTestsFolder( machineType )
+
+	# tests in the concurrent folder will be ran only if concurrency is enabled
+	concurrent_list = listTestsFolder( "concurrent" ) if concurrent else []
 
 	# append both lists to get
-	return generic_list + typed_list
+	return generic_list + typed_list + concurrent_list;
 
 # helper functions to run terminal commands
@@ -194,5 +200,5 @@
 		sys.stderr.flush()
 		return test_failed
-	
+
 	except KeyboardInterrupt:
 		test_failed = True
@@ -243,4 +249,5 @@
 parser = argparse.ArgumentParser(description='Script which runs cforall tests')
 parser.add_argument('--debug', help='Run all tests in debug or release', type=yes_no, default='no')
+parser.add_argument('--concurrent', help='Run concurrent tests', type=yes_no, default='no')
 parser.add_argument('--dry-run', help='Don\'t run the tests, only output the commands', action='store_true')
 parser.add_argument('--list', help='List all test available', action='store_true')
@@ -260,6 +267,8 @@
 	sys.exit(1)
 
+print( options.concurrent )
+
 # fetch the liest of all valid tests
-allTests = listTests()
+allTests = listTests( options.concurrent )
 
 # if user wants all tests than no other treatement of the test list is required
