diff --git a/apps/benchmarks/ComplexGeometry/CMakeLists.txt b/apps/benchmarks/ComplexGeometry/CMakeLists.txt
index 583b9426437a0844be2949ed65f242333a457ed1..9325acb3e3daf3ebc1f5ea5535d8a037cf897869 100644
--- a/apps/benchmarks/ComplexGeometry/CMakeLists.txt
+++ b/apps/benchmarks/ComplexGeometry/CMakeLists.txt
@@ -9,6 +9,6 @@ if ( WALBERLA_BUILD_WITH_OPENMESH )
 	# Some tests #
 	##############
 
-	waLBerla_execute_test( NO_MODULE_LABEL NAME ComplexGeometry COMMAND $<TARGET_FILE:ComplexGeometry> input.conf )
+	waLBerla_execute_test( NO_MODULE_LABEL NAME ComplexGeometry COMMAND $<TARGET_FILE:ComplexGeometry> input.conf DEPENDS_ON_TARGETS ComplexGeometry )
 endif()
 
diff --git a/cmake/waLBerlaFunctions.cmake b/cmake/waLBerlaFunctions.cmake
index 320afbb1de3518c1ccb7a25f5cdb7be3a25dd71e..59f629911622a9a3476e77b2209adc14eb4395b1 100644
--- a/cmake/waLBerlaFunctions.cmake
+++ b/cmake/waLBerlaFunctions.cmake
@@ -335,7 +335,7 @@ function ( waLBerla_execute_test )
     
    set( options NO_MODULE_LABEL )
    set( oneValueArgs NAME PROCESSES )
-   set( multiValueArgs COMMAND LABELS CONFIGURATIONS )
+   set( multiValueArgs COMMAND LABELS CONFIGURATIONS DEPENDS_ON_TARGETS )
    cmake_parse_arguments( ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
 
    if( NOT ARG_NAME )
@@ -343,9 +343,16 @@ function ( waLBerla_execute_test )
    endif()
    
    if( NOT ARG_COMMAND AND NOT TARGET ${ARG_NAME} )
-      message ( STATUS "Skipping ${ARG_NAME} since the corresponding test was not built" )
+      message ( STATUS "Skipping test ${ARG_NAME} since the corresponding target is not built" )
       return()
-   endif()  
+   endif() 
+
+   foreach( dependency_target ${ARG_DEPENDS_ON_TARGETS} )
+      if( NOT TARGET ${dependency_target} )
+         message ( STATUS "Skipping test ${ARG_NAME} since the target ${dependency_target} is not built" )
+         return()
+      endif()
+   endforeach( dependency_target )
    
    if( NOT ARG_PROCESSES )
       set ( numProcesses 1 )