diff --git a/src/core/PlumedMain.cpp b/src/core/PlumedMain.cpp
index d5e15c80da9931ead7be0726ffc5cc936348e815..67144ae5d7e9466cfd39be546427a0656c2da98d 100644
--- a/src/core/PlumedMain.cpp
+++ b/src/core/PlumedMain.cpp
@@ -457,7 +457,7 @@ void PlumedMain::cmd(const std::string & word,void*val) {
       /* ADDED WITH API==6 */
       case cmd_setNumOMPthreads:
         CHECK_NOTNULL(val,word);
-        OpenMP::setNumThreads(*static_cast<unsigned*>(val));
+        OpenMP::setNumThreads(*static_cast<unsigned*>(val)>0?*static_cast<unsigned*>(val):1);
         break;
       /* ADDED WITH API==6 */
       /* only used for testing */