diff --git a/Modules/FindPythonInterp.cmake b/Modules/FindPythonInterp.cmake
index 46cde437f56c02a0b94c0e8298fe60a7e9e02809..871d66687dc6ad8ed51e2fc62a2efef126d6d30e 100644
--- a/Modules/FindPythonInterp.cmake
+++ b/Modules/FindPythonInterp.cmake
@@ -20,6 +20,8 @@
 # (To distribute this file outside of CMake, substitute the full
 #  License text for the above reference.)
 
+find_program(PYTHON_EXECUTABLE NAMES python)
+
 # Set up the versions we know about, in the order we will search. Always add
 # the user supplied additional versions to the front.
 set(_Python_VERSIONS
@@ -27,19 +29,18 @@ set(_Python_VERSIONS
   2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.6 1.5)
 
 # Run first with the Python version in the executable
-foreach(_CURRENT_VERSION ${_Python_VERSIONS})
-  set(_Python_NAMES python${_CURRENT_VERSION})
-  if(WIN32)
-    list(APPEND _Python_NAMES python)
-  endif()
-  find_program(PYTHON_EXECUTABLE
-    NAMES ${_Python_NAMES}
-    PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]
-    )
-endforeach()
-# Now without any version if we still haven't found it
+
 if(NOT PYTHON_EXECUTABLE)
-  find_program(PYTHON_EXECUTABLE NAMES python)
+    foreach(_CURRENT_VERSION ${_Python_VERSIONS})
+      set(_Python_NAMES python${_CURRENT_VERSION})
+      if(WIN32)
+        list(APPEND _Python_NAMES python)
+      endif()
+      find_program(PYTHON_EXECUTABLE
+        NAMES ${_Python_NAMES}
+        PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]
+        )
+    endforeach()
 endif()