diff --git a/src/core/Atoms.cpp b/src/core/Atoms.cpp
index 2473875173582ed6a84ff3ea7b300f4caaf29b86..83f9433a7907899e3b4b1d85053432ec3c89d1c1 100644
--- a/src/core/Atoms.cpp
+++ b/src/core/Atoms.cpp
@@ -331,6 +331,12 @@ void Atoms::DomainDecomposition::enable(Communicator& c) {
   on=true;
   Set_comm(c.Get_comm());
   async=Get_size()<10;
+  if(std::getenv("PLUMED_ASYNC_SHARE")){
+    std::string s(std::getenv("PLUMED_ASYNC_SHARE"));
+    if(s=="yes") async=true;
+    else if(s=="no") async=false;
+    else plumed_merror("PLUMED_ASYNC_SHARE variable is set to " + s + "; should be yes or no");
+  }
 }
 
 void Atoms::setAtomsNlocal(int n) {