diff --git a/examples/all_features/CMakeLists.txt b/examples/all_features/CMakeLists.txt
index 1b9cfbe..8d6e489 100644
--- a/examples/all_features/CMakeLists.txt
+++ b/examples/all_features/CMakeLists.txt
@@ -10,7 +10,7 @@
 ## BUILD ALL EXAMPLE SOURCES INTO A SINGLE BINARY AND EXECUTE TESTS ON EACH FILE
 ################################################################################
 
-set(files
+set(files_with_output
     main.cpp
     doctest_proxy.h
     header.h
@@ -24,8 +24,14 @@
     asserts_used_outside_of_tests.cpp
 )
 
+set(files_all
+    ${files_with_output}
+    concurrency.cpp
+    ../../scripts/coverage_maxout.cpp
+)
+
 # add the executable
-doctest_add_executable(${PROJECT_NAME} ${files} ../../scripts/coverage_maxout.cpp)
+doctest_add_executable(${PROJECT_NAME} ${files_all})
 
 # easy way to fix test coverage - disable colors and crash handling
 target_compile_definitions(${PROJECT_NAME} PRIVATE
@@ -37,10 +43,13 @@
 set(common_args COMMAND $<TARGET_FILE:${PROJECT_NAME}> --no-skipped-summary --no-version --reporters=console)
 
 # add per-file tests
-foreach(f ${files})
+foreach(f ${files_with_output})
     doctest_add_test(NAME ${f} ${common_args} -sf=*${f})
 endforeach()
 
+# add this separately since it shouldn't have output compared to reference output - due to concurrency
+doctest_add_test(NO_OUTPUT NAME concurrency.cpp ${common_args} -sf=*concurrency.cpp)
+
 # add this separately since the file has a non-straightforward path
 doctest_add_test(NAME coverage_maxout.cpp ${common_args} -sf=*coverage_maxout.cpp)
 
@@ -71,7 +80,7 @@
     return() # do not continue with the disabled example
 endif()
 
-doctest_add_executable(disabled ${files})
+doctest_add_executable(disabled ${files_all})
 target_compile_definitions(disabled PRIVATE DOCTEST_CONFIG_DISABLE)
 
 doctest_add_test(NAME disabled COMMAND $<TARGET_FILE:disabled>)
diff --git a/examples/all_features/concurrency.cpp b/examples/all_features/concurrency.cpp
new file mode 100644
index 0000000..864cc32
--- /dev/null
+++ b/examples/all_features/concurrency.cpp
@@ -0,0 +1,19 @@
+#include "doctest.h"
+
+DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN
+#include <thread>
+DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END
+
+static void call_from_thread() {
+    INFO("trololo");
+    CHECK(1 == 1);
+    CHECK(1 == 2);
+}
+ 
+TEST_CASE("threads...") {
+    std::thread t1(call_from_thread);
+    std::thread t2(call_from_thread);
+ 
+    t1.join();
+    t2.join();
+}
diff --git a/examples/all_features/test_output/filter_2.txt b/examples/all_features/test_output/filter_2.txt
index ce53ed0..87e39cb 100644
--- a/examples/all_features/test_output/filter_2.txt
+++ b/examples/all_features/test_output/filter_2.txt
@@ -1,6 +1,6 @@
 [doctest] run with "--help" for options
 ===============================================================================
-[doctest] test cases:      0 |      0 passed |      0 failed |     70 skipped
+[doctest] test cases:      0 |      0 passed |      0 failed |     71 skipped
 [doctest] assertions:      0 |      0 passed |      0 failed |
 [doctest] Status: SUCCESS!
 Program code.
