diff --git a/cmake_support/FindOPENSTRUCTURE.cmake b/cmake_support/FindOPENSTRUCTURE.cmake
index 9f3b826516820bf2fc0b3589e810f23385eb4e3f..32b59ce64af00bb92168fb70029a1d09733e132a 100644
--- a/cmake_support/FindOPENSTRUCTURE.cmake
+++ b/cmake_support/FindOPENSTRUCTURE.cmake
@@ -10,11 +10,12 @@
 #                            link against python
 #    OST_VERSION             is set to the version of OpenStructure
 #    OST_INCLUDE_DIR         is set to the path that contains base.hh
+#    OST_PYMOD_PATH          path to the Pyhton module
 #
-# Author: Valerio Mariani, Marco Biasini
+# Author: Valerio Mariani, Marco Biasini, Stefan Bienert
 #-------------------------------------------------------------------------------
 
-macro(find_OPENSTRUCTURE OST_ROOT NAMES HEADER_NAMES)
+macro(find_OPENSTRUCTURE OST_ROOT NAMES HEADER_NAMES PYMOD_NAME)
   if (NOT OPENSTRUCTURE_FIND_COMPONENTS)
     message(FATAL_ERROR "Please specify which modules of OpenStructure you "
             "would like to use after the COMPONENTS keyword.")
@@ -46,7 +47,20 @@ macro(find_OPENSTRUCTURE OST_ROOT NAMES HEADER_NAMES)
     NAMES "${HEADER_NAMES}"
     HINTS "${OST_ROOT}/include"
     NO_SYSTEM_ENVIRONMENT_PATH NO_DEFAULT_PATH
-  )    
+    )
+
+  find_path_recursive(OST_PYMOD_PATH
+    NAME "${PYMOD_NAME}"
+    PATH "${OST_ROOT}"
+    PATH_SUFFIXES lib lib64
+    )
+  if(NOT OST_PYMOD_PATH)
+    if (OPENSTRUCTURE_FIND_REQUIRED)
+      message(FATAL_ERROR "Could not find Python module of OST. "
+                          "Please specify the location of your OST "
+                          "installation with OST_ROOT")
+    endif()
+  endif()
   set(OPENSTRUCTURE_FOUND 1)
 endmacro()
 
@@ -70,12 +84,13 @@ ost_img_alg
 ost_mol_alg
 )
 
-find_OPENSTRUCTURE("${OST_ROOT}" "${LIBNAMES}" "ost/config.hh")
+find_OPENSTRUCTURE("${OST_ROOT}" "${LIBNAMES}" "ost/config.hh" "ost/__init__.py")
 
 mark_as_advanced(
   OST_LIBRARIES
   OST_INCLUDE_DIR
   OST_VERSION
+  OST_PYMOD_PATH
 )
 
 if (OPENSTRUCTURE_FOUND)
diff --git a/cmake_support/PROMOD3.cmake b/cmake_support/PROMOD3.cmake
index 025e28d23002292b16344e2bdb65b481f43e8fbd..8849762ccc9b80366a1a2b440002526be0394d6d 100644
--- a/cmake_support/PROMOD3.cmake
+++ b/cmake_support/PROMOD3.cmake
@@ -476,10 +476,10 @@ macro(pymod)
     return()
   endif()
   if (_ARG_OUTPUT_DIR)
-    set(PYMOD_DIR "python${PYTHON_VERSION}/site-packages/${_ARG_OUTPUT_DIR}")
+    set(PYMOD_DIR "${PYTHON_MODULE_PATH}/${_ARG_OUTPUT_DIR}")
   else()
     set(PYMOD_DIR
-        "python${PYTHON_VERSION}/site-packages/${_ARG_PREFIX}/${_ARG_NAME}")
+        "${PYTHON_MODULE_PATH}/${_ARG_PREFIX}/${_ARG_NAME}")
   endif()
   set(PYMOD_STAGE_DIR "${LIB_STAGE_PATH}/${PYMOD_DIR}")
   file(MAKE_DIRECTORY ${PYMOD_STAGE_DIR})
@@ -728,10 +728,8 @@ macro(promod3_unittest)
         set(python_path "${python_path}:")
       endif(python_path)
       # we just add OST manually here until we find a more flexible way
-      set(python_path
-       "${python_path}${LIB_STAGE_PATH}/python${PYTHON_VERSION}/site-packages:")
-      set(python_path
-   "${python_path}${OST_ROOT}/${LIB_DIR}/python${PYTHON_VERSION}/site-packages")
+      set(python_path "${python_path}${LIB_STAGE_PATH}/${PYTHON_MODULE_PATH}:")
+      set(python_path "${python_path}${OST_PYMOD_PATH}")
       set (PY_TESTS_CMD "PYTHONPATH=${python_path}  ${PYTHON_BINARY}")
       add_custom_target("${py_test}_run"
                   sh -c "${PY_TESTS_CMD} ${py_twp}"
@@ -1224,7 +1222,7 @@ macro(find_path_recursive VARIABLE)
       file(TO_NATIVE_PATH "${_fst}/${_ARG_NAME}" _modpath)
       if(EXISTS ${_modpath})
         # set var and exit
-        set(${VARIABLE} ${_modpath})
+        set(${VARIABLE} ${_fst})
         set(_fst_subs)
         break()
       endif(EXISTS ${_modpath})