diff --git a/src/core/PlumedMain.cpp b/src/core/PlumedMain.cpp
index 1a17ebb60db54a89dad0e47c9bf26031bd574ec3..aba7e2afbd8f5c839f087b4aa08f89ea53d5a488 100644
--- a/src/core/PlumedMain.cpp
+++ b/src/core/PlumedMain.cpp
@@ -127,293 +127,295 @@ void PlumedMain::cmd(const std::string & word,void*val){
     if(it!=plumedMainWordMap().end()) iword=it->second;
     switch(iword) {
       double d;
-      case SETBOX: // cmd setBox
+      case cmd_setBox:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.setBox(val);
         break;
-      case SETPOSITIONS: // cmd setPositions
+      case cmd_setPositions:
         CHECK_INIT(initialized,word);
         atoms.setPositions(val);
         break;
-      case SETMASSES: // cmd setMasses
+      case cmd_setMasses:
         CHECK_INIT(initialized,word);
         atoms.setMasses(val);
         break;
-      case SETCHARGES: // cmd setCharges
+      case cmd_setCharges:
         CHECK_INIT(initialized,word);
         atoms.setCharges(val);
         break;
-      case SETPOSITIONSX: // cmd setPositionsX
+      case cmd_setPositionsX:
         CHECK_INIT(initialized,word);
         atoms.setPositions(val,0);
         break;
-      case SETPOSITIONSY: // cmd setPositionsY
+      case cmd_setPositionsY:
         CHECK_INIT(initialized,word);
         atoms.setPositions(val,1);
         break;
-      case SETPOSITIONSZ: // cmd setPositionsZ
+      case cmd_setPositionsZ:
         CHECK_INIT(initialized,word);
         atoms.setPositions(val,2);
         break;
-      case SETVIRIAL: // cmd setVirial
+      case cmd_setVirial:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.setVirial(val);
         break;
-      case SETENERGY: // cmd setEnergy
+      case cmd_setEnergy:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.setEnergy(val);
         break;
-      case SETFORCES: // cmd setForces
+      case cmd_setForces:
         CHECK_INIT(initialized,word);
         atoms.setForces(val);
         break;
-      case SETFORCESX: // cmd setForcesX
+      case cmd_setForcesX:
         CHECK_INIT(initialized,word);
         atoms.setForces(val,0);
         break;
-      case SETFORCESY: // cmd setForcesY
+      case cmd_setForcesY:
         CHECK_INIT(initialized,word);
         atoms.setForces(val,1);
         break;
-      case SETFORCESZ: // cmd setForcesZ
+      case cmd_setForcesZ:
         CHECK_INIT(initialized,word);
         atoms.setForces(val,2);
         break;
-      case CALC: // cmd calc
+      case cmd_calc:
         CHECK_INIT(initialized,word);
         calc();
         break;
-      case PREPAREDEPENDENCIES: // cmd prepareDependencies
+      case cmd_prepareDependencies:
         CHECK_INIT(initialized,word);
         prepareDependencies();
         break;
-      case SHAREDATA: // cmd shareData
+      case cmd_shareData:
         CHECK_INIT(initialized,word);
         shareData();
         break;
-      case PREPARECALC: // cmd prepareCalc
+      case cmd_prepareCalc:
         CHECK_INIT(initialized,word);
         prepareCalc();
         break;
-      case PERFORMCALC: // cmd performCalc
+      case cmd_performCalc:
         CHECK_INIT(initialized,word);
         performCalc();
         break;
-      case PERFORMCALCNOUPDATE: // cmd performCalcNoUpdate
+      case cmd_performCalcNoUpdate:
         CHECK_INIT(initialized,word);
         performCalcNoUpdate();
         break;
-      case UPDATE: // cmd update
+      case cmd_update:
         CHECK_INIT(initialized,word);
         update();
         break;
-      case SETSTEP: // cmd setStep
+      case cmd_setStep:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         step=(*static_cast<int*>(val));
         atoms.startStep();
         break;
-      case SETSTEPLONG: // cmd setStepLong
+      case cmd_setStepLong:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         step=(*static_cast<long int*>(val));
         atoms.startStep();
         break;
       // words used less frequently:
-      case SETATOMSNLOCAL: // cmd setAtomsNlocal
+      case cmd_setAtomsNlocal:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.setAtomsNlocal(*static_cast<int*>(val));
         break;
-      case SETATOMSGATINDEX: // cmd setAtomsGatindex
+      case cmd_setAtomsGatindex:
         CHECK_INIT(initialized,word);
         atoms.setAtomsGatindex(static_cast<int*>(val),false);
         break;
-      case SETATOMSFGATINDEX: // cmd setAtomsFGatindex
+      case cmd_setAtomsFGatindex:
         CHECK_INIT(initialized,word);
         atoms.setAtomsGatindex(static_cast<int*>(val),true);
         break;
-      case SETATOMSCONTIGUOUS: // cmd setAtomsContiguous
+      case cmd_setAtomsContiguous:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.setAtomsContiguous(*static_cast<int*>(val));
         break;
-      case CREATEFULLLIST: // cmd createFullList
+      case cmd_createFullList:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.createFullList(static_cast<int*>(val));
         break;
-      case GETFULLLIST: // cmd getFullList
+      case cmd_getFullList:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.getFullList(static_cast<int**>(val));
         break;
-      case CLEARFULLLIST: // cmd clearFullList
+      case cmd_clearFullList:
         CHECK_INIT(initialized,word);
         atoms.clearFullList();
         break;
-      case READ: // cmd read
+      case cmd_read:
         CHECK_INIT(initialized,word);
         if(val)readInputFile(static_cast<char*>(val));
         else   readInputFile("plumed.dat");
         break;
-      case READINPUTLINE: // cmd readInputLine
+      case cmd_readInputLine:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         readInputLine(static_cast<char*>(val));
         break;
-      case CLEAR: // cmd clear
+      case cmd_clear:
         CHECK_INIT(initialized,word);
         actionSet.clearDelete();
         break;
-      case GETAPIVERSION: // cmd getApiVersion
+      case cmd_getApiVersion:
         CHECK_NULL(val,word);
         *(static_cast<int*>(val))=4;
         break;
       // commands which can be used only before initialization:
-      case INIT: // cmd init
+      case cmd_init:
         CHECK_NOTINIT(initialized,word);
         init();
         break;
-      case SETREALPRECISION: // cmd setRealPrecision
+      case cmd_setRealPrecision:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.setRealPrecision(*static_cast<int*>(val));
         break;
-      case SETMDLENGTHUNITS: // cmd setMDLengthUnits
+      case cmd_setMDLengthUnits:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.MD2double(val,d);
         atoms.setMDLengthUnits(d);
         break;
-      case SETMDCHARGEUNITS: // cmd setMDChargeUnits
+      case cmd_setMDChargeUnits:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.MD2double(val,d);
         atoms.setMDChargeUnits(d);
         break;
-      case SETMDMASSUNITS: // cmd setMDMassUnits
+      case cmd_setMDMassUnits:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.MD2double(val,d);
         atoms.setMDMassUnits(d);
         break;
-      case SETMDENERGYUNITS: // cmd setMDEnergyUnits
+      case cmd_setMDEnergyUnits:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.MD2double(val,d);
         atoms.setMDEnergyUnits(d);
         break;
-      case SETMDTIMEUNITS: // cmd setMDTimeUnits
+      case cmd_setMDTimeUnits:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.MD2double(val,d);
         atoms.setMDTimeUnits(d);
         break;
-      case SETNATURALUNITS: // cmd setNaturalUnits
+      case cmd_setNaturalUnits:
       // set the boltzman constant for MD in natural units (kb=1)
       // only needed in LJ codes if the MD is passing temperatures to plumed (so, not yet...)
       // use as cmd("setNaturalUnits")
         CHECK_NOTINIT(initialized,word);
         atoms.setMDNaturalUnits(true);
         break;
-      case SETNOVIRIAL: // cmd setNoVirial
+      case cmd_setNoVirial:
         CHECK_NOTINIT(initialized,word);
         novirial=true;
         break;
-      case SETPLUMEDDAT: // cmd setPlumedDat
+      case cmd_setPlumedDat:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         plumedDat=static_cast<char*>(val);
         break;
-      case SETMPICOMM: // cmd setMPIComm
+      case cmd_setMPIComm:
         CHECK_NOTINIT(initialized,word);
         comm.Set_comm(val);
         atoms.setDomainDecomposition(comm);
         break;
-      case SETMPIFCOMM: // cmd setMPIFComm
+      case cmd_setMPIFComm:
         CHECK_NOTINIT(initialized,word);
         comm.Set_fcomm(val);
         atoms.setDomainDecomposition(comm);
         break;
-      case SETMPIMULTISIMCOMM: // cmd setMPImultiSimComm
+      case cmd_setMPImultiSimComm:
         CHECK_NOTINIT(initialized,word);
         multi_sim_comm.Set_comm(val);
         break;
-      case SETNATOMS: // cmd setNatoms
+      case cmd_setNatoms:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.setNatoms(*static_cast<int*>(val));
         break;
-      case SETTIMESTEP: // cmd setTimestep
+      case cmd_setTimestep:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.setTimeStep(val);
         break;
-      case SETKBT: /* ADDED WITH API==2 */ // cmd setKbT
+      /* ADDED WITH API==2 */
+      case cmd_setKbT:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         atoms.setKbT(val);
         break;
-      case SETRESTART: /* ADDED WITH API==3 */ // cmd setRestart
+      /* ADDED WITH API==3 */
+      case cmd_setRestart:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         if(*static_cast<int*>(val)!=0) restart=true;
         break;
-      case SETMDENGINE: // cmd setMDEngine
+      case cmd_setMDEngine:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         MDEngine=static_cast<char*>(val);
         break;
-      case SETLOG: // cmd setLog
+      case cmd_setLog:
         CHECK_NOTINIT(initialized,word);
         log.link(static_cast<FILE*>(val));
         break;
-      case SETLOGFILE: // cmd setLogFile
+      case cmd_setLogFile:
         CHECK_NOTINIT(initialized,word);
         CHECK_NULL(val,word);
         log.open(static_cast<char*>(val));
         break;
       // other commands that should be used after initialization:
-      case SETSTOPFLAG: // cmd setStopFlag
+      case cmd_setStopFlag:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         stopFlag=static_cast<int*>(val);
         break;
-      case GETEXCHANGESFLAG: // cmd getExchangesFlag
+      case cmd_getExchangesFlag:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         exchangePatterns.getFlag((*static_cast<int*>(val)));
         break;
-      case SETEXCHANGESSEED: // cmd setExchangesSeed
+      case cmd_setExchangesSeed:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         exchangePatterns.setSeed((*static_cast<int*>(val)));
         break;
-      case SETNUMBEROFREPLICAS: // cmd setNumberOfReplicas
+      case cmd_setNumberOfReplicas:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         exchangePatterns.setNofR((*static_cast<int*>(val)));
         break;
-      case GETEXCHANGESLIST: // cmd getExchangesList
+      case cmd_getExchangesList:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         exchangePatterns.getList((static_cast<int*>(val)));
         break;
-      case RUNFINALJOBS: // cmd runFinalJobs
+      case cmd_runFinalJobs:
         CHECK_INIT(initialized,word);
         runJobsAtEndOfCalculation();
         break;
-      case ISENERGYNEEDED: // cmd isEnergyNeeded
+      case cmd_isEnergyNeeded:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         if(atoms.isEnergyNeeded()) *(static_cast<int*>(val))=1;
         else                       *(static_cast<int*>(val))=0;
         break;
-      case GETBIAS: // cmd getBias
+      case cmd_getBias:
         CHECK_INIT(initialized,word);
         CHECK_NULL(val,word);
         d=getBias()/(atoms.getMDUnits().getEnergy()/atoms.getUnits().getEnergy());
diff --git a/src/maketools/makecmd b/src/maketools/makecmd
index 21fe1b43021f0ba166b7b2bc1a3e936b426ce358..e469dffb2dfcd19519df3c712d7923639a451ecf 100755
--- a/src/maketools/makecmd
+++ b/src/maketools/makecmd
@@ -2,12 +2,15 @@
 
 awk -v opt=$1 '
 {
-  if($1=="case" && $(NF-1)=="cmd"){
-      i++;
-      string[i]=$NF
-      enum[i]=$2
-      sub(":","",enum[i]);
-      } }END{
+  if($1=="case" && match($2,"^cmd_.*:")){
+    i++;
+    enum[i]=$2;
+    sub(":","",enum[i]);
+    string[i]=$2;
+    sub(":","",string[i]);
+    sub("^cmd_","",string[i]);
+  }
+  }END{
   n=i;
   if(opt=="enum"){
     print "enum {"