diff --git a/control/control.c b/control/control.c
index 08765ca2da91ba886eb73945ec38be5a657b08e4..aafb2d268dbb042ab8a07927482a44ccc5fffb2b 100644
--- a/control/control.c
+++ b/control/control.c
@@ -103,6 +103,13 @@ int __chameleon_initpar(int ncpus, int ncudas, int nthreads_per_worker)
 #  endif
 #endif
 
+#if !defined(CHAMELEON_USE_CUDA)
+    if ( ncudas != 0 ) {
+        chameleon_warning("CHAMELEON_Init", "CHAMELEON_USE_CUDA is not defined, ncudas is forced to 0");
+        ncudas = 0;
+    }
+#endif
+
     RUNTIME_init( chamctxt, ncpus, ncudas, nthreads_per_worker );
 
 #if defined(CHAMELEON_USE_MPI)
diff --git a/timing/timing.c b/timing/timing.c
index 8ce10c992d41aa91a40f115a00fc59e4a5c8fbac..771173b2492abc96b0c9e2845d2c22bcf6edf703 100644
--- a/timing/timing.c
+++ b/timing/timing.c
@@ -730,20 +730,12 @@ main(int argc, char *argv[]) {
     int stop  = 5000;
     int step  =  500;
     int iparam[IPARAM_SIZEOF];
+    int return_code;
 
     set_iparam_default(iparam);
 
     parse_arguments(&argc, &argv, iparam, &start, &stop, &step);
 
-#if !defined(CHAMELEON_USE_CUDA)
-    if (iparam[IPARAM_NCUDAS] != 0){
-        fprintf(stderr, "ERROR: CHAMELEON_USE_CUDA is not defined. "
-                "The number of CUDA devices must be set to 0 (--gpus=0).\n");
-        return EXIT_FAILURE;
-    }
-#endif
-    int return_code;
-
     /* Initialize CHAMELEON */
     CHAMELEON_Init( iparam[IPARAM_THRDNBR],
                     iparam[IPARAM_NCUDAS] );