diff --git a/CMakeLists.txt b/CMakeLists.txt
index b32530d1854a2b73f530f1ec89f126a36eff6c87..3c0c05f3b45a480919cdf97fdd2b48de6827ed8d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -551,22 +551,26 @@ endif ( )
 ##
 #############################################################################################################################
 if ( WALBERLA_BUILD_WITH_CODEGEN )
-   find_package( PythonInterp 3 QUIET REQUIRED)
+   git_update_submodules()
+   find_package( PythonInterp 3.6 QUIET REQUIRED)
+
    execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import lbmpy; import pystencils"
          RESULT_VARIABLE LBMPY_FOUND )
     if(NOT LBMPY_FOUND EQUAL 0)
-       git_update_submodules()
+       if( GIT_FOUND )
+          message(FATAL_ERROR "Please update git submodules or install pystencils and lbmpy via pip.")
+       else()
+          message(FATAL_ERROR "Please install pystencils and lbmpy e.g. via pip")
+       endif()
     endif()
     set(ENV{PYTHONPATH} ${walberla_SOURCE_DIR}/extern/pystencils:$ENV{PYTHONPATH})
-    message(STATUS $ENV{PYTHONPATH})
     execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from pystencils.include import get_pystencils_include_path; print(get_pystencils_include_path())"
                     OUTPUT_VARIABLE PYSTENCILS_INCLUDE_PATH)
     include_directories( ${PYSTENCILS_INCLUDE_PATH} )
     string(STRIP ${PYSTENCILS_INCLUDE_PATH} PYSTENCILS_INCLUDE_PATH_TMP)
     message( STATUS "Found pystencils: ${PYSTENCILS_INCLUDE_PATH_TMP}" )
 
-    execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import jinja2"
-          RESULT_VARIABLE JINJA2_FOUND )
+    execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import jinja2" RESULT_VARIABLE JINJA2_FOUND )
     if(NOT JINJA2_FOUND EQUAL 0)
        message(FATAL_ERROR "WALBERLA_BUILD_WITH_CODEGEN activated and jinja2 package not found.
        Please install jinja2 e.g.: 'pip3 install jinja2'")
diff --git a/cmake/waLBerlaHelperFunctions.cmake b/cmake/waLBerlaHelperFunctions.cmake
index 27024cc43c93e9497dfe35d8b578f55851ace809..0c128792e867800b336e030f68392a6d47c6deaa 100644
--- a/cmake/waLBerlaHelperFunctions.cmake
+++ b/cmake/waLBerlaHelperFunctions.cmake
@@ -307,10 +307,12 @@ endfunction()
 #######################################################################################################################
 #
 # updates all submodules in the walberla repository
+# this function will propagate GIT_FOUND to the parent scope
 #
 #######################################################################################################################
 function( git_update_submodules )
     find_package(Git QUIET)
+    set(GIT_FOUND ${GIT_FOUND} PARENT_SCOPE)
     if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
         # Update submodules as needed
         if(WALBERLA_GIT_SUBMODULE_AUTO)