diff --git a/CHANGELOG b/CHANGELOG
index bcfe0e157fa1a99532d33e26cf714e9951345177..2a1fc7b16a30e197ded81d00c08fd93af3e11b6b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,18 @@
 Changelog
 ================================================================================
 
+Release 3.2.x
+--------------------------------------------------------------------------------
+
+* Remove outdated configuration scripts (Fedora 19 / ancient Mac)
+* Construct CB atoms if only N,CA and C atoms are present in 
+  ReconstructSidechains input structure.
+* Detect Python using functionality provided by CMake instead of our own code.
+  You might have to adapt CMake flags when building ProMod3 to variables 
+  specified here: https://cmake.org/cmake/help/latest/module/FindPython.html
+* Several minor bug fixes, improvements, and speed-ups.
+
+
 Release 3.1.1
 --------------------------------------------------------------------------------
 
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1dd665c0179a07cbe951f8f2ef888dee4c59f5af..2ba70913c454ae129f7e9567d43137bdf129221b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -87,17 +87,19 @@ file(MAKE_DIRECTORY ${STAGE_DIR}
 setup_compiler_flags()
 
 # Python needed before Boost
-find_package(Python 3.6 REQUIRED)
+find_package(Python 3.6 REQUIRED COMPONENTS Interpreter Development)
 # Split version string
-string(REPLACE "." ";" _python_version_list ${PYTHON_VERSION})
-list(GET _python_version_list 0 PYTHON_VERSION_MAJOR)
-list(GET _python_version_list 1 PYTHON_VERSION_MINOR)
+string(REPLACE "." ";" _python_version_list ${Python_VERSION})
+list(GET _python_version_list 0 Python_VERSION_MAJOR)
+list(GET _python_version_list 1 Python_VERSION_MINOR)
+# where Python modules live
+set(PYTHON_MODULE_PATH "python${Python_VERSION_MAJOR}${Python_VERSION_MINOR}/site-packages/")
 
 setup_boost()
 
 if(NOT DISABLE_DOCUMENTATION)
   find_package(Sphinx REQUIRED)
-  set(PYTHON_DOC_URL "https://docs.python.org/${PYTHON_VERSION}")
+  set(PYTHON_DOC_URL "https://docs.python.org/${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}")
   # this URL should always point to the latest version of OST
   set(OST_DOC_URL "https://www.openstructure.org/docs")
 endif()
@@ -125,7 +127,7 @@ endif()
 # This is somewhat experimental: Checking if Boost is compiled with the same
 # Python version used for Promod3. The very same macro is disabled in OST so
 # it may fail at some point.
-#promod3_match_boost_python_version(${PYTHON_LIBRARIES})
+#promod3_match_boost_python_version(${Python_LIBRARIES})
 
 # basic environment
 include_directories(${Boost_INCLUDE_DIRS}
@@ -162,5 +164,5 @@ message(STATUS "${PROJECT_NAME} will be built with the following options:\n"
         "   OpenStructure (-DOST_ROOT)       : ${OST_ROOT}\n"
         "   Compound library (-DCOMPOUND_LIB): ${occp}\n"
         "   Optimized     (-DOPTIMIZE)       : ${_OPT}\n"
-        "   Python                           : ${PYTHON_BINARY}\n"
+        "   Python                           : ${Python_EXECUTABLE}\n"
         "   Eigen3                           : ${EIGEN3_INCLUDE_DIR}\n")
diff --git a/cmake_support/FindOPENSTRUCTURE.cmake b/cmake_support/FindOPENSTRUCTURE.cmake
index 5e21d7262ca508e87cbe7c41d7ba31f95fd830e4..7677d6c0162bdbdebc150c554da49660fbad9663 100644
--- a/cmake_support/FindOPENSTRUCTURE.cmake
+++ b/cmake_support/FindOPENSTRUCTURE.cmake
@@ -27,7 +27,7 @@ macro(find_OPENSTRUCTURE OST_ROOT HEADER_NAMES PYMOD_NAME)
     set(FOUND_LIB FOUND_LIB-NOTFOUND)
     find_library(FOUND_LIB 
       NAMES ost_${LIB}
-      HINTS "${PYTHON_ROOT}"
+      HINTS "${Python_ROOT}"
       PATH ${OST_ROOT}
       PATH_SUFFIXES lib lib64
       NO_SYSTEM_ENVIRONMENT_PATH NO_DEFAULT_PATH
diff --git a/cmake_support/FindPython.cmake b/cmake_support/FindPython.cmake
deleted file mode 100644
index b0fb4cdf1b6308ec77d6257f29bd2f68b9cf769e..0000000000000000000000000000000000000000
--- a/cmake_support/FindPython.cmake
+++ /dev/null
@@ -1,188 +0,0 @@
-#-------------------------------------------------------------------------------
-# Check for Python Libraries
-#
-#    PYTHON_IGNORE_FRAMEWORKS if set, do not check for python frameworks. 
-#                             has meaning on MacOS X only
-#    PYTHON_ROOT              Prefix for python libraries
-#    PYTHON_MIN_VERSION       minimal python version required
-#  
-# When Python is found, the result is placed in the following variables:
-# 
-#    PYTHON_LIBRARIES         is set to the library and linker flags used to
-#                             link against python
-#    PYTHON_VERSION           is set to the version of python
-#    PYTHON_INCLUDE_PATH      is set to the path that contains Python.h
-#    PYTHON_BINARY            is set to the path to the python executable
-#    PYTHON_MODULE_PATH       is set as path-component where modules should live
-#
-# Author: Marco Biasini/ Stefan Bienert
-#-------------------------------------------------------------------------------
-
-set(PYTHON_VERSIONS 3.8 3.7 3.6 )
-set(PYTHON_MIN_VERSION 3.6.0)
-
-#-------------------------------------------------------------------------------
-# check for python framework
-# this macro honours the values of PYTHON_ROOT
-#-------------------------------------------------------------------------------
-macro(check_for_python_framework)
-  set(_FRAMEWORK_SEARCH_PATHS /Library/Frameworks/ /System/Library/Frameworks)
-  if(PYTHON_ROOT)
-    set(_FRAMEWORK_SEARCH_PATHS ${PYTHON_ROOT}/Library/Frameworks)
-  endif()
-  foreach(_PATH ${_FRAMEWORK_SEARCH_PATHS})
-    set(_FULL_FRAMEWORK_NAME "${_PATH}/Python.framework")
-    if(EXISTS ${_FULL_FRAMEWORK_NAME})
-      set(PYTHON_FRAMEWORK ON)
-      set(PYTHON_INCLUDE_PATH "${_FULL_FRAMEWORK_NAME}/Headers")
-      set(PYTHON_FRAMEWORK_PATH "${_FULL_FRAMEWORK_NAME}/Python")
-    endif()
-  endforeach()
-endmacro()
-
-
-
-macro(_find_python PYTHON_ROOT VERSION)
-  string(REPLACE "." "" _VERSION_NO_DOTS "${VERSION}")
-  if(PYTHON_ROOT)
-    find_library(PYTHON_LIBRARIES
-      NAMES "python${_VERSION_NO_DOTS}" "python${VERSION}"
-      "python${_VERSION_NO_DOTS}m" "python${VERSION}m"
-      HINTS "${PYTHON_ROOT}"
-      PATH_SUFFIXES lib libs
-      NO_SYSTEM_ENVIRONMENT_PATH NO_DEFAULT_PATH
-    )
-    find_path(PYTHON_INCLUDE_PATH
-      NAMES Python.h
-      HINTS "${PYTHON_ROOT}/include"
-      PATH_SUFFIXES include "python${_VERSION_NO_DOTS}" "python${VERSION}"
-      "python${_VERSION_NO_DOTS}m" "python${VERSION}m"
-      NO_SYSTEM_ENVIRONMENT_PATH NO_DEFAULT_PATH
-    )
-  else()
-    find_library(PYTHON_LIBRARIES
-      NAMES "python${_VERSION_NO_DOTS}" "python${VERSION}"
-      "python${_VERSION_NO_DOTS}m" "python${VERSION}m"
-      PATH_SUFFIXES lib
-    )
-    find_path(PYTHON_INCLUDE_PATH
-      NAMES Python.h
-      PATH_SUFFIXES include "python${_VERSION_NO_DOTS}" "python${VERSION}"  
-      "python${_VERSION_NO_DOTS}m" "python${VERSION}m"   
-    )    
-  endif()  
-endmacro()
-
-macro(_find_python_bin PYTHON_ROOT VERSION)
-  string(REPLACE "." "" _VERSION_NO_DOTS "${VERSION}")
-  if(PYTHON_ROOT)
-    find_program(PYTHON_BINARY
-      NAMES "python${_VERSION_NO_DOTS}" "python${VERSION}" python.exe
-      HINTS "${PYTHON_ROOT}"
-      PATH_SUFFIXES bin
-      NO_SYSTEM_ENVIRONMENT_PATH NO_DEFAULT_PATH
-    )
-  else()
-    find_program(PYTHON_BINARY
-      NAMES "python${_VERSION_NO_DOTS}" "python${VERSION}"
-      HINTS "${CMAKE_PREFIX_PATH}"
-      PATH_SUFFIXES bin
-    )  
-  endif()  
-endmacro()
-
-#-------------------------------------------------------------------------------
-# check for python lib
-#
-# this macro honours the values of PYTHON_ROOT and PYTHON_VERSION
-#-------------------------------------------------------------------------------
-macro(check_for_python_lib)
-  if(PYTHON_VERSION)
-    _find_python("${PYTHON_ROOT}" "${PYTHON_VERSION}")
-  else()
-    foreach(_VERSION ${PYTHON_VERSIONS})
-     if((${PYTHON_MIN_VERSION} VERSION_LESS ${_VERSION}) OR
-        (${PYTHON_MIN_VERSION} VERSION_EQUAL ${_VERSION}))
-        _find_python("${PYTHON_ROOT}" "${_VERSION}")
-        if(PYTHON_LIBRARIES)
-          set(PYTHON_VERSION "${_VERSION}")
-          break()
-        endif()
-      endif()
-    endforeach()
-  endif()
-  # fallback to non-versioned naming scheme
-  if (NOT $PYTHON_LIBRARIES)
-    _find_python("${PYTHON_ROOT}" "")
-  endif()
-endmacro()
-
-macro(check_for_python_binary)
-  if(PYTHON_VERSION)
-    _find_python_bin("${PYTHON_ROOT}" "${PYTHON_VERSION}")
-  else()
-    foreach(_VERSION ${PYTHON_VERSIONS})
-      if((${PYTHON_MIN_VERSION} VERSION_LESS ${_VERSION}) OR
-         (${PYTHON_MIN_VERSION} VERSION_EQUAL ${_VERSION}))
-        _find_python_bin("${PYTHON_ROOT}" "${_VERSION}")
-        if(PYTHON_BINARY)
-          set(PYTHON_VERSION "${_VERSION}")
-          # disallow all versions except for the one we just found. This makes
-          # sure we don't mismatch the python binary and the libraries.
-          set(PYTHON_VERSIONS "${_VERSION}")
-          break()
-        endif()
-      endif()
-    endforeach()
-  endif()
-  if (NOT PYTHON_BINARY)
-    _find_python("${PYTHON_ROOT}" "")
-  endif()
-endmacro()
-
-if(NOT PYTHON_ROOT)
-  if(WIN32)
-    set(PYTHON_ROOT "${CMAKE_PREFIX_PATH}")
-  else()
-    set(PYTHON_ROOT "/usr")
-  endif()
-endif()
-if(APPLE AND NOT PYTHON_IGNORE_FRAMEWORKS)
-  check_for_python_framework()
-endif()
-
-# first check for python binary.
-check_for_python_binary()
-
-if(NOT PYTHON_FRAMEWORK_FOUND)
-  check_for_python_lib()
-endif()
-
-set(PYTHON_MODULE_PATH "python${PYTHON_VERSION}/site-packages/")
-
-mark_as_advanced(
-  PYTHON_LIBRARIES
-  PYTHON_INCLUDE_PATH
-  PYTHON_VERSION
-  PYTHON_BINARY
-  PYTHON_MODULE_PATH
-)
-
-if(PYTHON_LIBRARIES)
-  if(PYTHON_FRAMEWORK)
-    set(PYTHON_LIBRARIES "${PYTHON_FRAMEWORK_PATH}"
-        CACHE FILEPATH "Python Libraries" FORCE)
-  else()
-    set(PYTHON_LIBRARIES "${PYTHON_LIBRARIES}"
-        CACHE FILEPATH "Python Libraries" FORCE)
-  endif()
-  set(PYTHON_INCLUDE_PATH "${PYTHON_INCLUDE_PATH}"
-      CACHE FILEPATH "Python Include Path" FORCE)
-endif()
-
-if (PYTHON_BINARY)
-  set(PYTHON_VERSION "${PYTHON_VERSION}"
-      CACHE STRING "Python Version" FORCE)
-  set(PYTHON_BINARY "${PYTHON_BINARY}"
-      CACHE FILEPATH "Python Binary" FORCE)
-endif()
diff --git a/cmake_support/FindSphinx.cmake b/cmake_support/FindSphinx.cmake
index 956b18248d4ca013ba1f3e9727855e28413da540..28bce054877838c4db5ddc12f52edc709e0da29d 100644
--- a/cmake_support/FindSphinx.cmake
+++ b/cmake_support/FindSphinx.cmake
@@ -1,5 +1,5 @@
-IF(PYTHON_BINARY)
-  EXEC_PROGRAM ("${PYTHON_BINARY}"
+IF(Python_EXECUTABLE)
+  EXEC_PROGRAM ("${Python_EXECUTABLE}"
     ARGS "-c 'import sphinx; print(sphinx.__version__)'"
     OUTPUT_VARIABLE VERSION_STRING
     RETURN_VALUE SPHINX_NOT_FOUND)
@@ -9,13 +9,13 @@ IF(PYTHON_BINARY)
     set(SPHINX_FOUND TRUE)
     set(SPHINX_VERSION ${VERSION_STRING})
   endif (SPHINX_NOT_FOUND)
-ENDIF(PYTHON_BINARY)
+ENDIF(Python_EXECUTABLE)
 
 if (SPHINX_FOUND)
   message(STATUS "Sphinx version: " ${SPHINX_VERSION})
 else (SPHINX_FOUND)
   if (Sphinx_FIND_REQUIRED)
-    message (FATAL_ERROR "Could not import sphinx in " ${PYTHON_BINARY}
+    message (FATAL_ERROR "Could not import sphinx in " ${Python_EXECUTABLE}
              " make it available or disable documentation with -DDISABLE_DOCUMENTATION")
   endif (Sphinx_FIND_REQUIRED)
 endif (SPHINX_FOUND)
diff --git a/cmake_support/PROMOD3.cmake b/cmake_support/PROMOD3.cmake
index f42ac97d137dc170880b4add0e1dc3879c638b1a..01f5f74ccc169f108467bf5cf2483c3f063f6de8 100644
--- a/cmake_support/PROMOD3.cmake
+++ b/cmake_support/PROMOD3.cmake
@@ -70,7 +70,7 @@ endmacro(check_architecture)
 # 
 # Set variable VAR (in parent scope) to an updated PYTHONPATH env. variable 
 # which includes OST and PM3 paths. This can then be used to call python scripts
-# with commands such as: sh -c "PYTHONPATH=${VAR} ${PYTHON_BINARY} ..."
+# with commands such as: sh -c "PYTHONPATH=${VAR} ${Python_EXECUTABLE} ..."
 #-------------------------------------------------------------------------------
 macro(get_python_path VAR)
   set(${VAR} $ENV{PYTHONPATH})
@@ -521,7 +521,7 @@ macro(pymod)
       set(_PARENT_LIB_NAME "${_PARENT_NAME}")
     endif()
     target_link_libraries("_${_ARG_NAME}" ${_PARENT_LIB_NAME} 
-                          ${PYTHON_LIBRARIES} ${BOOST_PYTHON_LIBRARIES})
+                          ${Python_LIBRARIES} ${BOOST_PYTHON_LIBRARIES})
     set_target_properties("_${_ARG_NAME}"
                          PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PYMOD_STAGE_DIR})
     if(NOT ENABLE_STATIC)
@@ -589,7 +589,7 @@ macro(pymod)
         add_custom_target("${_ARG_NAME}_${_trans_py_source}_pymod" ALL DEPENDS ${_trans_py_file_to})
         add_dependencies("${_ARG_NAME}_pymod" "${_ARG_NAME}_${_trans_py_source}_pymod")
         add_dependencies("_${_ARG_NAME}" "${_ARG_NAME}_pymod")
-        include_directories(${PYTHON_INCLUDE_PATH})
+        include_directories(${Python_INCLUDE_DIRS})
         install(FILES ${_trans_py_file_to} DESTINATION "${LIB_DIR}/${PYMOD_DIR}")
         if(NOT DISABLE_DOCUMENTATION)
           add_doc_dependency(NAME ${_ARG_NAME} DEP "${_ARG_NAME}_${_trans_py_source}_pymod")
@@ -641,7 +641,7 @@ macro(pymod)
       copy_if_different("./" "${PYMOD_STAGE_DIR}" "${_ABS_PY_FILES}" "TARGETS"
                         "${_ARG_NAME}_pymod")
       add_dependencies("_${_ARG_NAME}" "${_ARG_NAME}_pymod")
-      include_directories(${PYTHON_INCLUDE_PATH})
+      include_directories(${Python_INCLUDE_DIRS})
       install(FILES ${_PY_FILES} DESTINATION "${LIB_DIR}/${PYMOD_DIR}")
     endif()
   endif()
@@ -798,7 +798,7 @@ macro(promod3_unittest)
       message(FATAL_ERROR "Python test script does not exist: ${py_twp}")
     endif()
     get_python_path(python_path)
-    set (PY_TESTS_CMD "PYTHONPATH=${python_path}  ${PYTHON_BINARY}")
+    set (PY_TESTS_CMD "PYTHONPATH=${python_path}  ${Python_EXECUTABLE}")
     add_custom_target("${py_test}_run"
                 sh -c "${PY_TESTS_CMD} ${py_twp}"
               WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
@@ -863,8 +863,8 @@ endmacro(add_unit_test_data_target)
 #-------------------------------------------------------------------------------
 macro(promod3_find_python_module MODULE)
   if(NOT PYTHON_MODULE_${MODULE})
-    message(STATUS "Searching for python module ${MODULE} for ${PYTHON_BINARY}")
-    execute_process(COMMAND ${PYTHON_BINARY} -c "import ${MODULE}"
+    message(STATUS "Searching for python module ${MODULE} for ${Python_EXECUTABLE}")
+    execute_process(COMMAND ${Python_EXECUTABLE} -c "import ${MODULE}"
                     OUTPUT_QUIET ERROR_QUIET
                     RESULT_VARIABLE _IMPORT_ERROR)
     if(_IMPORT_ERROR)
@@ -900,9 +900,9 @@ macro(promod3_match_boost_python_version)
     list(GET _BOOST_PYTHON_LIBRARY ${_LIB_INDEX} _BP_LIB_PATH)
     set(_BOOST_PYTHON_LIBRARY ${_BP_LIB_PATH})
   endif()
-  set(CMAKE_REQUIRED_FLAGS "-I${PYTHON_INCLUDE_PATH}")
+  set(CMAKE_REQUIRED_FLAGS "-I${Python_INCLUDE_DIRS}")
   set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -I${Boost_INCLUDE_DIR}")
-  set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${PYTHON_LIBRARIES}")
+  set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${Python_LIBRARIES}")
   set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${_BOOST_PYTHON_LIBRARY}")
   check_cxx_source_runs(
 "#include <boost/python.hpp>
@@ -1016,12 +1016,12 @@ set(_BOOST_MIN_VERSION 1.53)
 macro(setup_boost)
   # starting with CMake 3.11 we could use the following instead of the foreach
   # find_package(Boost ${_BOOST_MIN_VERSION} COMPONENTS
-  #              python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR} REQUIRED)
+  #              python${Python_VERSION_MAJOR}${Python_VERSION_MINOR} REQUIRED)
   # set(BOOST_PYTHON_LIBRARIES ${Boost_LIBRARIES})
   # see https://cmake.org/cmake/help/v3.11/module/FindBoost.html
-  foreach(_python_lib_name python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}
-                           python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}
-                           python${PYTHON_VERSION_MAJOR}
+  foreach(_python_lib_name python${Python_VERSION_MAJOR}${Python_VERSION_MINOR}
+                           python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}
+                           python${Python_VERSION_MAJOR}
                            python)
     find_package(Boost ${_BOOST_MIN_VERSION} COMPONENTS ${_python_lib_name} QUIET)
     if(Boost_FOUND)
@@ -1331,7 +1331,7 @@ macro(convert_module_data)
 
   # setup python call
   set(_PY_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${_ARG_SCRIPT}")
-  set(_PY_CMD "${PYTHON_BINARY} '${_PY_PATH}' '${_SRC_PATH}' '${_TRG_PATH}' ${_ARG_ARGS}")
+  set(_PY_CMD "${Python_EXECUTABLE} '${_PY_PATH}' '${_SRC_PATH}' '${_TRG_PATH}' ${_ARG_ARGS}")
 
   # set command to run (depends on _MODULE (pymod-target), FILE and SCRIPT)
   # -> here we also make sure "import promod3" is ready
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index acaf8d0f77ff49b0e4b296003b70eae9022cd292..343dd02451528c4c198026f0064cd2b4a776f6f5 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -144,7 +144,7 @@ set(_SPHINX_INDEX_HTML "${_SPHINX_HTML_DIR}/index.html")
 add_custom_command(OUTPUT ${_SPHINX_INDEX_HTML}
                    DEPENDS doc_wait_for_rst "${_SPHINX_CONF_PY}" ${_RST_DEPS}
                            ${_DOC_MODULE_DEPS} doc_wait_for_modules
-                   COMMAND "${PYTHON_BINARY}" -m sphinx -b html -c "${_RST_SOURCE_DIR}"
+                   COMMAND "${Python_EXECUTABLE}" -m sphinx -b html -c "${_RST_SOURCE_DIR}"
                                      "${_RST_SOURCE_DIR}" "${_SPHINX_HTML_DIR}")
 add_custom_target(html DEPENDS ${_SPHINX_INDEX_HTML})
 
@@ -156,7 +156,7 @@ set(_SPHINX_INDEX_JSON "${_SPHINX_JSON_DIR}/index.fjson")
 add_custom_command(OUTPUT ${_SPHINX_INDEX_JSON}
                    DEPENDS doc_wait_for_rst "${_SPHINX_CONF_PY}" ${_RST_DEPS}
                            ${_DOC_MODULE_DEPS} doc_wait_for_modules
-                   COMMAND "${PYTHON_BINARY}" -m sphinx -b json -c "${_RST_SOURCE_DIR}"
+                   COMMAND "${Python_EXECUTABLE}" -m sphinx -b json -c "${_RST_SOURCE_DIR}"
                                      "${_RST_SOURCE_DIR}" "${_SPHINX_JSON_DIR}")
 add_custom_target(json DEPENDS ${_SPHINX_INDEX_JSON})
 
@@ -167,7 +167,7 @@ set(_SPHINX_MAN "${_SPHINX_MAN_DIR}/promod3.1")
 add_custom_command(OUTPUT ${_SPHINX_MAN}
                    DEPENDS doc_wait_for_rst "${_SPHINX_CONF_PY}" ${_RST_DEPS}
                            ${_DOC_MODULE_DEPS} doc_wait_for_modules
-                   COMMAND "${PYTHON_BINARY}" -m sphinx -b man -c "${_RST_SOURCE_DIR}"
+                   COMMAND "${Python_EXECUTABLE}" -m sphinx -b man -c "${_RST_SOURCE_DIR}"
                                       "${_RST_SOURCE_DIR}" "${_SPHINX_MAN_DIR}")
 add_custom_target(man DEPENDS ${_SPHINX_MAN})
 
@@ -180,7 +180,7 @@ add_dependencies(doc man)
 set(_SPHINX_LINKCHECK_DIR "${CMAKE_CURRENT_BINARY_DIR}/linkcheck")
 file(MAKE_DIRECTORY ${_SPHINX_LINKCHECK_DIR})
 add_custom_target(linkcheck
-                  COMMAND "${PYTHON_BINARY}" -m sphinx -b linkcheck -c "${_RST_SOURCE_DIR}"
+                  COMMAND "${Python_EXECUTABLE}" -m sphinx -b linkcheck -c "${_RST_SOURCE_DIR}"
                                  "${_RST_SOURCE_DIR}" "${_SPHINX_LINKCHECK_DIR}"
                   DEPENDS "${_SPHINX_CONF_PY}" ${_RST_DEPS} ${_DOC_MODULE_DEPS})
 
diff --git a/doc/buildsystem.rst b/doc/buildsystem.rst
index 5960348cf6d2e6cb2598440d7ffa10784a63ef2e..df28ce02585ae1557e4af1d57b2d942fb396ea51 100644
--- a/doc/buildsystem.rst
+++ b/doc/buildsystem.rst
@@ -65,7 +65,7 @@ headers would be located in ``OST_ROOT/include/ost``).
 Similarly, one can specify folders for |boost|, |python| and |eigen3| 
 if multiple versions exist and/or they are not installed in a default location.
 These are set with the ``BOOST_ROOT`` (make sure that's the same as for |ost_s|), 
-``PYTHON_ROOT`` and ``EIGEN3_INCLUDE_DIR``.
+``Python_ROOT`` and ``EIGEN3_INCLUDE_DIR``.
 
 Here is a list of more options used within |project|:
 
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
index fd4ae8e6ec0d55b1c0f073f07cd132146b17e931..35af3b9a4a41b6dac2f51c5e4a3438615bd01f01 100644
--- a/scripts/CMakeLists.txt
+++ b/scripts/CMakeLists.txt
@@ -3,7 +3,7 @@ set(SUBST_DICT OST_ROOT="${OST_ROOT}"
                LIBEXECPATH=${LIBEXEC_PATH}
                PYTHON_MODULE_PATH=${PYTHON_MODULE_PATH}
                OST_PYMOD_PATH=${OST_PYMOD_PATH}
-               PYTHON_BINARY=${PYTHON_BINARY})
+               Python_EXECUTABLE=${Python_EXECUTABLE})
 
 add_custom_target(promod3_scripts ALL)
 
diff --git a/scripts/pm.in b/scripts/pm.in
index d7c7e190828772497476b2e64222940ae95fe7ea..339c715b8ac4c7edc9bc323551ca11eaf3c67e0b 100755
--- a/scripts/pm.in
+++ b/scripts/pm.in
@@ -43,7 +43,7 @@ export PATH="$BIN_DIR:${OST_ROOT}/bin:$PATH"
 export LD_LIBRARY_PATH="${PROMOD3_ROOT}/@LIBDIR@:${OST_ROOT}/lib64:$LD_LIBRARY_PATH"
 
 # retrieve absolute path to python executable
-pyexec="@PYTHON_BINARY@"
+pyexec="@Python_EXECUTABLE@"
 
 ACTION="$1"
 PROMOD3_SCRIPT="${PROMOD3_EXEC_PATH}/pm-${ACTION}"