diff --git a/CHANGES/v2.3.md b/CHANGES/v2.3.md
index e1abeb4c9ab7c4fa1ac21ed5bf75ef4f3dfebea8..c92fea35335240d8bd7cddedd5a8151a8f79d814 100644
--- a/CHANGES/v2.3.md
+++ b/CHANGES/v2.3.md
@@ -233,3 +233,6 @@ For developers:
 For users:
 - Fixed a problem leading to NaN derivatives of \ref switchingfunction `Q` when distance between two atoms is large.
 
+For developers:
+- Fixed small issue in debug options of \ref driver (see \issue{245}).
+
diff --git a/regtest/basic/rt-mpi1/config b/regtest/basic/rt-mpi1/config
index 46557af1e4bb2bb5da12d023b1e85ccba295086e..4cbfe19b55fab375c30306210ed8e76d5fcd03be 100644
--- a/regtest/basic/rt-mpi1/config
+++ b/regtest/basic/rt-mpi1/config
@@ -1,5 +1,5 @@
 mpiprocs=4
 type=driver
 # this is to test a different name
-arg="--plumed=plumed.dat --timestep=0.05 --ixyz trajectory.xyz --dump-forces ff  --debug-pd"
+arg="--plumed=plumed.dat --timestep=0.05 --ixyz trajectory.xyz --dump-forces ff  --debug-pd yes"
 extra_files="../../trajectories/trajectory.xyz"
diff --git a/regtest/basic/rt-mpi2/config b/regtest/basic/rt-mpi2/config
index bc4f1e9d001efc92491833e8961a0c5d1915e97e..138134b522f74e80150bf2540651a4e7b0dea24b 100644
--- a/regtest/basic/rt-mpi2/config
+++ b/regtest/basic/rt-mpi2/config
@@ -1,5 +1,5 @@
 mpiprocs=4
 type=driver
 # this is to test a different name
-arg="--plumed=plumed.dat --timestep=0.05 --ixyz trajectory.xyz --dump-forces ff --pdb test.pdb --debug-dd"
+arg="--debug-dd yes --plumed=plumed.dat --timestep=0.05 --ixyz trajectory.xyz --dump-forces ff --pdb test.pdb"
 extra_files="../../trajectories/trajectory.xyz"
diff --git a/regtest/basic/rt-mpi2sync/config b/regtest/basic/rt-mpi2sync/config
index e5f0f8483748f26986a721678b3500f573b8b111..95a0ed84cb6a2f1c8820f079ccc840b7a0edb875 100644
--- a/regtest/basic/rt-mpi2sync/config
+++ b/regtest/basic/rt-mpi2sync/config
@@ -1,6 +1,6 @@
 mpiprocs=4
 type=driver
 # this is to test a different name
-arg="--plumed=plumed.dat --timestep=0.05 --ixyz trajectory.xyz --dump-forces ff --pdb test.pdb --debug-dd"
+arg="--plumed=plumed.dat --timestep=0.05 --ixyz trajectory.xyz --dump-forces ff --pdb test.pdb --debug-dd yes"
 extra_files="../../trajectories/trajectory.xyz"
 export PLUMED_ASYNC_SHARE=no
diff --git a/regtest/basic/rt-mpi3/config b/regtest/basic/rt-mpi3/config
index 84aa17316418a8f2982bd8d9fe3e9708166cba83..bdc7f44f768e032b2f446f20d5a1823378ebf949 100644
--- a/regtest/basic/rt-mpi3/config
+++ b/regtest/basic/rt-mpi3/config
@@ -2,4 +2,4 @@ mpiprocs=6
 type=driver
 # this is to test a different name
 arg="--plumed=plumed.dat --timestep=0.05 --ixyz trajectory.xyz --dump-forces ff --pdb test.pdb --multi 3
-     --debug-dd --debug-grex 2 --debug-grex-log log.grex"
+     --debug-dd yes --debug-grex 2 --debug-grex-log log.grex"
diff --git a/regtest/basic/rt-mpi4/config b/regtest/basic/rt-mpi4/config
index 2b5d1124cf68c30b71921a030081e0c4aecebbb3..8df03bbd31302e649c41e4e61d19ddb15b26b4b5 100644
--- a/regtest/basic/rt-mpi4/config
+++ b/regtest/basic/rt-mpi4/config
@@ -2,4 +2,4 @@ mpiprocs=6
 type=driver
 # this is to test a different name
 arg="--plumed=plumed.dat --timestep=0.05 --ixyz trajectory.xyz --dump-forces ff --pdb test.pdb --multi 3
-      --debug-dd --debug-grex 2 --debug-grex-log log.grex"
+      --debug-dd yes --debug-grex 2 --debug-grex-log log.grex"
diff --git a/regtest/basic/rt-mpi8/config b/regtest/basic/rt-mpi8/config
index e77c2576345c9305a71239a01e56a9c9673d1ddb..70148af92f85f2b9ed4585858ee9f51e6c3f2c20 100644
--- a/regtest/basic/rt-mpi8/config
+++ b/regtest/basic/rt-mpi8/config
@@ -2,4 +2,4 @@ mpiprocs=6
 type=driver
 # this is to test a different name
 arg="--plumed=plumed.dat --timestep=0.05 --ixyz trajectory.xyz --dump-forces ff --multi 3
-      --debug-dd --debug-grex 2 --debug-grex-log log.grex"
+      --debug-dd yes --debug-grex 2 --debug-grex-log log.grex"
diff --git a/regtest/basic/rt63-mpi/config b/regtest/basic/rt63-mpi/config
index 0dfe7a16268757e4f2e743f78cb51acddbe35317..95732d30602aa5227f9fb218a41a2dc8ee6bcaa1 100644
--- a/regtest/basic/rt63-mpi/config
+++ b/regtest/basic/rt63-mpi/config
@@ -1,3 +1,3 @@
 type=driver
 mpiprocs=2
-arg="--plumed plumed.dat --trajectory-stride 10 --timestep 0.005 --igro helix.input.gro --dump-forces ff --dump-full-virial --debug-dd"
+arg="--plumed plumed.dat --trajectory-stride 10 --timestep 0.005 --igro helix.input.gro --dump-forces ff --dump-full-virial --debug-dd yes"
diff --git a/regtest/basic/rt63c-mpi/config b/regtest/basic/rt63c-mpi/config
index 9e7954b34313fa58bce88d8294912400f67f0ffa..f4fb5bab6bb219f0c662d09da81c0c73f07d94de 100644
--- a/regtest/basic/rt63c-mpi/config
+++ b/regtest/basic/rt63c-mpi/config
@@ -1,4 +1,4 @@
 type=driver
 mpiprocs=2
 plumed_needs="matheval"
-arg="--plumed plumed.dat --trajectory-stride 10 --timestep 0.005 --igro helix.input.gro --dump-forces ff --dump-full-virial --dump-forces-fmt=%7.4f --debug-dd"
+arg="--plumed plumed.dat --trajectory-stride 10 --timestep 0.005 --igro helix.input.gro --dump-forces ff --dump-full-virial --dump-forces-fmt=%7.4f --debug-dd yes"
diff --git a/src/cltools/Driver.cpp b/src/cltools/Driver.cpp
index 6d7d952e040f6d88ce5152d424ff4c5709e78f31..1040d6861d4437186d4be0cdd4e56a2383ab4bca 100644
--- a/src/cltools/Driver.cpp
+++ b/src/cltools/Driver.cpp
@@ -240,9 +240,9 @@ void Driver<real>::registerKeywords( Keywords& keys ) {
   keys.add("optional","--initial-step","provides a number for the initial step, default is 0");
   keys.add("optional","--debug-forces","output a file containing the forces due to the bias evaluated using numerical derivatives "
            "and using the analytical derivatives implemented in plumed");
-  keys.add("hidden","--debug-float","turns on the single precision version (to check float interface)");
-  keys.add("hidden","--debug-dd","use a fake domain decomposition");
-  keys.add("hidden","--debug-pd","use a fake particle decomposition");
+  keys.add("hidden","--debug-float","[yes/no] turns on the single precision version (to check float interface)");
+  keys.add("hidden","--debug-dd","[yes/no] use a fake domain decomposition");
+  keys.add("hidden","--debug-pd","[yes/no] use a fake particle decomposition");
   keys.add("hidden","--debug-grex","use a fake gromacs-like replica exchange, specify exchange stride");
   keys.add("hidden","--debug-grex-log","log file for debug=grex");
 #ifdef __PLUMED_HAS_MOLFILE_PLUGINS
@@ -276,9 +276,9 @@ int Driver<real>::main(FILE* in,FILE*out,Communicator& pc) {
   if( printhelpdebug ) {
     fprintf(out,"%s",
             "Additional options for debug (only to be used in regtest):\n"
-            "  [--debug-float]         : turns on the single precision version (to check float interface)\n"
-            "  [--debug-dd]            : use a fake domain decomposition\n"
-            "  [--debug-pd]            : use a fake particle decomposition\n"
+            "  [--debug-float yes]     : turns on the single precision version (to check float interface)\n"
+            "  [--debug-dd yes]        : use a fake domain decomposition\n"
+            "  [--debug-pd yes]        : use a fake particle decomposition\n"
            );
     return 0;
   }
@@ -286,8 +286,16 @@ int Driver<real>::main(FILE* in,FILE*out,Communicator& pc) {
   bool noatoms; parseFlag("--noatoms",noatoms);
 
   std::string fakein;
-  bool debugfloat=parse("--debug-float",fakein);
-  if(debugfloat && sizeof(real)!=sizeof(float)) {
+
+  bool debug_float=false;
+  fakein="";
+  if(parse("--debug-float",fakein)) {
+    if(fakein=="yes") debug_float=true;
+    else if(fakein=="no") debug_float=false;
+    else error("--debug-float should have argument yes or no");
+  }
+
+  if(debug_float && sizeof(real)!=sizeof(float)) {
     CLTool* cl=cltoolRegister().create(CLToolOptions("driver-float"));    //new Driver<float>(*this);
     cl->setInputData(this->getInputData());
     int ret=cl->main(in,out,pc);
@@ -295,8 +303,24 @@ int Driver<real>::main(FILE* in,FILE*out,Communicator& pc) {
     return ret;
   }
 
-  bool debug_pd=parse("--debug-pd",fakein);
-  bool debug_dd=parse("--debug-dd",fakein);
+  bool debug_pd=false;
+  fakein="";
+  if(parse("--debug-pd",fakein)) {
+    if(fakein=="yes") debug_pd=true;
+    else if(fakein=="no") debug_pd=false;
+    else error("--debug-pd should have argument yes or no");
+  }
+  if(debug_pd) fprintf(out,"DEBUGGING PARTICLE DECOMPOSITION\n");
+
+  bool debug_dd=false;
+  fakein="";
+  if(parse("--debug-dd",fakein)) {
+    if(fakein=="yes") debug_dd=true;
+    else if(fakein=="no") debug_dd=false;
+    else error("--debug-dd should have argument yes or no");
+  }
+  if(debug_dd) fprintf(out,"DEBUGGING DOMAIN DECOMPOSITION\n");
+
   if( debug_pd || debug_dd ) {
     if(noatoms) error("cannot debug without atoms");
   }