diff --git a/CMake/External/CMakeLists.txt b/CMake/External/CMakeLists.txt
index 72c51131fbabacf89d57cb1d670643474c1e8c25..05a584dcf37346b79744cb65bf80cf5d871f955e 100644
--- a/CMake/External/CMakeLists.txt
+++ b/CMake/External/CMakeLists.txt
@@ -87,6 +87,11 @@ if(WIN32)
     -D${PROJECT_NAME}_ENABLE_AUDIO:BOOL=${${PROJECT_NAME}_AUDIO_ENABLED}
     )
 endif()
+if(iMSTK_USE_PHYSX)
+  list(APPEND EXTERNAL_PROJECT_OPTIONAL_CMAKE_CACHE_ARGS
+    -DPHYSX_CONFIGURATION:STRING=${PHYSX_CONFIGURATION}
+  )
+endif()
 
 #-----------------------------------------------------------------------------
 # Inner build of the main project
@@ -113,8 +118,6 @@ ExternalProject_Add( ${PROJECT_NAME}
     -DGTest_DIR:PATH=${GTest_DIR}
     -DVegaFEM_DIR:PATH=${VegaFEM_DIR}
     -DVTK_DIR:PATH=${VTK_DIR}
-    # I don't think this is needed by the inner build
-    # -DPHYSX_CONFIGURATION:STRING=${${PROJECT_NAME}_PHYSX_CONFIGURATION}
     ${EXTERNAL_PROJECT_OPTIONAL_CMAKE_CACHE_ARGS}
   DEPENDS ${${PROJECT_NAME}_DEPENDENCIES}
   PATCH_COMMAND 
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c93afc3a0e0fef21426da3b14850a76eb2f376b1..19040cc93bba4e045b2020c10a1f53ef6cdc6350 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -135,6 +135,16 @@ if (UNIX)
 endif()
 option(${PROJECT_NAME}_USE_VRPN "Build with VRPN support" OFF)
 option(${PROJECT_NAME}_USE_PHYSX "Build with Physx support" OFF)
+if(iMSTK_USE_PHYSX)
+  set(PHYSX_CONFIGURATION "RELEASE" CACHE STRING "PhysX release library type")
+
+  # Set the possible values for cmake-gui
+  set_property(CACHE PHYSX_CONFIGURATION PROPERTY STRINGS
+    "RELEASE"
+    "CHECKED"
+    "PROFILE"
+    )
+endif()
 
 #-----------------------------------------------------------------------------
 # CTest/Dashboards
@@ -152,11 +162,6 @@ option(${PROJECT_NAME}_SUPERBUILD "Build ${PROJECT_NAME} and the projects it dep
 
 if(${PROJECT_NAME}_SUPERBUILD)
 
-  # Select the release version of PhysX to use
-  set(${PROJECT_NAME}_PHYSX_CONFIGURATION "RELEASE" CACHE STRING "Select PhysX Library Type for Release and RelWithDebInfo builds")
-  set(PHYSX_RELEASE_TYPES "RELEASE;CHECKED;PROFILE" CACHE INTERNAL "List of available PhysX release library types")
-  set_property(CACHE ${PROJECT_NAME}_PHYSX_CONFIGURATION PROPERTY STRINGS ${PHYSX_RELEASE_TYPES})
-
   #-----------------------------------------------------------------------------
   # Define External dependencies
   #-----------------------------------------------------------------------------
@@ -268,12 +273,11 @@ find_package( Libusb REQUIRED)
 # OpenVR
 find_package( OpenVR REQUIRED )
 
-# Select the release version of PhysX to use
-if (${PROJECT_NAME}_USE_PHYSX)
+# PhysX
+if (iMSTK_USE_PHYSX)
   add_compile_definitions(IMSTK_USE_PHYSX)
-  set(PHYSX_CONFIGURATION "${PHYSX_CONFIGURATION}" CACHE STRING "Select PhysX Library Type for Release and RelWithDebInfo builds")
-  set(PHYSX_RELEASE_TYPES "RELEASE;CHECKED;PROFILE" CACHE INTERNAL "List of available PhysX release library types")
-  set_property(CACHE PHYSX_CONFIGURATION PROPERTY STRINGS ${PHYSX_RELEASE_TYPES})
+  # Variable PHYSX_CONFIGURATION used in FindPhysX.cmake is set above where
+  # iMSTK_USE_PHYSX CMake option is defined.
   find_package(PhysX REQUIRED)
 endif()