diff --git a/CMakeLists.txt b/CMakeLists.txt
index ac5c30bf6..08a3d4025 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -713,14 +713,14 @@ endif()
 ############################### CUDA ################################
 
 if(WITH_CUDA)
-    find_package(CUDA 3.2)
+    find_package(CUDA 4.0)
     
     if(CUDA_FOUND)
         set(HAVE_CUDA 1)
         message(STATUS "CUDA detected: " ${CUDA_VERSION})
 
         set(CUDA_ARCH_BIN "1.1 1.2 1.3 2.0" CACHE STRING "Specify 'real' GPU architectures to build binaries for, BIN(PTX) format is supported")
-        set(CUDA_ARCH_PTX "1.1 1.3" CACHE STRING "Specify 'virtual' PTX architectures to build PTX intermediate code for")              
+        set(CUDA_ARCH_PTX "1.1 1.3" CACHE STRING "Specify 'virtual' PTX architectures to build PTX intermediate code for")
         
         string(REGEX REPLACE "\\." "" ARCH_BIN_NO_POINTS "${CUDA_ARCH_BIN}")
         string(REGEX REPLACE "\\." "" ARCH_PTX_NO_POINTS "${CUDA_ARCH_PTX}")
@@ -769,7 +769,10 @@ if(WITH_CUDA)
         set(OpenCV_CUDA_CC "${NVCC_FLAGS_EXTRA}")
         
         message(STATUS "CUDA NVCC flags: ${CUDA_NVCC_FLAGS}")
-    endif()
+    else()
+		unset(CUDA_ARCH_BIN CACHE)
+        unset(CUDA_ARCH_PTX CACHE)	
+	endif()	
 endif()
 
 
diff --git a/modules/gpu/CMakeLists.txt b/modules/gpu/CMakeLists.txt
index 114fc810b..c0dcb8be9 100644
--- a/modules/gpu/CMakeLists.txt
+++ b/modules/gpu/CMakeLists.txt
@@ -34,12 +34,7 @@ if (HAVE_CUDA)
     include_directories("src/nvidia/core" "src/nvidia/NPP_staging")
 endif()
 
-if (HAVE_CUDA)		
-    #get_filename_component(_path_to_findnpp "${CMAKE_CURRENT_LIST_FILE}" PATH)
-    #set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${_path_to_findnpp})
-    #find_package(NPP 3.2.16 REQUIRED)
-    #message(STATUS "NPP detected: " ${NPP_VERSION})
-       
+if (HAVE_CUDA)       
     include_directories(${CUDA_INCLUDE_DIRS})
 
     if (UNIX OR APPLE)