diff --git a/src/multicolvar/Angles.cpp b/src/multicolvar/Angles.cpp
index 06e8daa06481282699c1414e7347bdfc8f3d4bf5..e01469986c13a76a2b71a81d694ef7f058fc5eb8 100644
--- a/src/multicolvar/Angles.cpp
+++ b/src/multicolvar/Angles.cpp
@@ -136,7 +136,9 @@ use_sf(false)
       use_sf=true;
       weightHasDerivatives=true;
       sf1.set(sfinput,errors);
+      if( errors.length()!=0 ) error("problem reading SWITCH keyword : " + errors ); 
       sf2.set(sfinput,errors);
+      if( errors.length()!=0 ) error("problem reading SWITCH keyword : " + errors ); 
       log.printf("  only calculating angles for atoms separated by less than %s\n", sf1.description().c_str() );
   } else {
       parse("SWITCHA",sfinput); 
@@ -144,9 +146,11 @@ use_sf(false)
          use_sf=true;
          weightHasDerivatives=true;
          sf1.set(sfinput,errors);
+         if( errors.length()!=0 ) error("problem reading SWITCHA keyword : " + errors ); 
          sfinput.clear(); parse("SWITCHB",sfinput);
          if(sfinput.length()==0) error("found SWITCHA keyword without SWITCHB");
          sf2.set(sfinput,errors); 
+         if( errors.length()!=0 ) error("problem reading SWITCHB keyword : " + errors );
          log.printf("  only calculating angles when the distance between GROUPA and GROUPB atoms is less than %s\n", sf1.description().c_str() );
          log.printf("  only calculating angles when the distance between GROUPA and GROUPC atoms is less than %s\n", sf2.description().c_str() );
       }
diff --git a/src/multicolvar/Bridge.cpp b/src/multicolvar/Bridge.cpp
index bb845780425fdcc692725a762749130823239788..8efacd4094b6ba1d9bfd98981c8511908b52bf6c 100644
--- a/src/multicolvar/Bridge.cpp
+++ b/src/multicolvar/Bridge.cpp
@@ -100,15 +100,19 @@ PLUMED_MULTICOLVAR_INIT(ao)
   std::string sfinput,errors; parse("SWITCH",sfinput);
   if( sfinput.length()>0 ){
       sf1.set(sfinput,errors);
+      if( errors.length()!=0 ) error("problem reading SWITCH keyword : " + errors );
       sf2.set(sfinput,errors);
+      if( errors.length()!=0 ) error("problem reading SWITCH keyword : " + errors );   
   } else {
       parse("SWITCHA",sfinput); 
       if(sfinput.length()>0){
          weightHasDerivatives=true;
          sf1.set(sfinput,errors);
+         if( errors.length()!=0 ) error("problem reading SWITCHA keyword : " + errors );
          sfinput.clear(); parse("SWITCHB",sfinput);
          if(sfinput.length()==0) error("found SWITCHA keyword without SWITCHB");
          sf2.set(sfinput,errors); 
+         if( errors.length()!=0 ) error("problem reading SWITCHB keyword : " + errors );
       } else {
          error("missing definition of switching functions");
       } 
diff --git a/src/multicolvar/CoordinationNumbers.cpp b/src/multicolvar/CoordinationNumbers.cpp
index 7038374b62ac50a891d358873b4870f0068f99c9..d8d1a64015a4060438b09f01e632192233e503ca 100644
--- a/src/multicolvar/CoordinationNumbers.cpp
+++ b/src/multicolvar/CoordinationNumbers.cpp
@@ -100,6 +100,7 @@ PLUMED_MULTICOLVAR_INIT(ao)
   std::string sw, errors; parse("SWITCH",sw);
   if(sw.length()>0){
      switchingFunction.set(sw,errors);
+     if( errors.length()!=0 ) error("problem reading SWITCH keyword : " + errors );
   } else { 
      double r_0=-1.0, d_0; int nn, mm;
      parse("NN",nn); parse("MM",mm);