diff --git a/3rdparty/NPP_staging/npp_staging.h b/3rdparty/NPP_staging/npp_staging.h
index a9c6607dff..6bb1e67d59 100644
--- a/3rdparty/NPP_staging/npp_staging.h
+++ b/3rdparty/NPP_staging/npp_staging.h
@@ -188,14 +188,14 @@ struct NppStSize32u
 enum NppStStatus
 {
     //already present in NPP
-    //NPP_SUCCESS                      = 0,   ///< Successful operation (same as NPP_NO_ERROR)
-    //NPP_ERROR                        = -1,  ///< Unknown error
-    //NPP_CUDA_KERNEL_EXECUTION_ERROR  = -3,  ///< CUDA kernel execution error
-    //NPP_NULL_POINTER_ERROR           = -4,  ///< NULL pointer argument error
-    //NPP_TEXTURE_BIND_ERROR           = -24, ///< CUDA texture binding error or non-zero offset returned
-    //NPP_MEMCPY_ERROR                 = -13, ///< CUDA memory copy error
-    //NPP_MEM_ALLOC_ERR                = -12, ///< CUDA memory allocation error
-    //NPP_MEMFREE_ERR                  = -15, ///< CUDA memory deallocation error
+    __NPP_SUCCESS                      = 0,   ///< Successful operation (same as NPP_NO_ERROR)
+    __NPP_ERROR                        = -1,  ///< Unknown error
+    __NPP_CUDA_KERNEL_EXECUTION_ERROR  = -3,  ///< CUDA kernel execution error
+    __NPP_NULL_POINTER_ERROR           = -4,  ///< NULL pointer argument error
+    __NPP_TEXTURE_BIND_ERROR           = -24, ///< CUDA texture binding error or non-zero offset returned
+    __NPP_MEMCPY_ERROR                 = -13, ///< CUDA memory copy error
+    __NPP_MEM_ALLOC_ERR                = -12, ///< CUDA memory allocation error
+    __NPP_MEMFREE_ERR                  = -15, ///< CUDA memory deallocation error
 
     //to be added
     NPP_INVALID_ROI,                        ///< Invalid region of interest argument
diff --git a/modules/gpu/src/cascadeclassifier.cpp b/modules/gpu/src/cascadeclassifier.cpp
index 3a7d2ca47d..ec24b282df 100644
--- a/modules/gpu/src/cascadeclassifier.cpp
+++ b/modules/gpu/src/cascadeclassifier.cpp
@@ -89,6 +89,7 @@ struct cv::gpu::CascadeClassifier_GPU::CascadeClassifierImpl
         src_seg.size  = src.step * src.rows;
 
         NCVMatrixReuse<Ncv8u> d_src(src_seg, devProp.textureAlignment, src.cols, src.rows, src.step, true);        
+		ncvAssertReturn(d_src.isMemReused(), NCV_ALLOCATOR_BAD_REUSE);
         
         //NCVMatrixAlloc<Ncv8u> d_src(*gpuAllocator, src.cols, src.rows);
         //ncvAssertReturn(d_src.isMemAllocated(), NCV_ALLOCATOR_BAD_ALLOC);
@@ -106,6 +107,7 @@ struct cv::gpu::CascadeClassifier_GPU::CascadeClassifierImpl
         objects_seg.begin = objects_beg;
         objects_seg.size = objects.step * objects.rows;
         NCVVectorReuse<NcvRect32u> d_rects(objects_seg, objects.cols);
+		ncvAssertReturn(d_rects.isMemReused(), NCV_ALLOCATOR_BAD_REUSE);
         //NCVVectorAlloc<NcvRect32u> d_rects(*gpuAllocator, 100);        
         //ncvAssertReturn(d_rects.isMemAllocated(), NCV_ALLOCATOR_BAD_ALLOC);        
             
diff --git a/samples/gpu/cascadeclassifier.cpp b/samples/gpu/cascadeclassifier.cpp
index 7f0a0e74db..4e1faac117 100644
--- a/samples/gpu/cascadeclassifier.cpp
+++ b/samples/gpu/cascadeclassifier.cpp
@@ -84,7 +84,7 @@ int main( int argc, const char** argv )
     
     /* parameters */
     bool useGPU = true;
-    double scale_factor = 2;
+    double scale_factor = 1;
 
     bool visualizeInPlace = false;   
     bool findLargestObject = false;