diff --git a/src/core/Atoms.cpp b/src/core/Atoms.cpp
index 4f633a233f36aec4d803162d03a656915370607d..ee0b18698da39cfb8a4abacdb450d0951f8385ee 100644
--- a/src/core/Atoms.cpp
+++ b/src/core/Atoms.cpp
@@ -336,6 +336,11 @@ void Atoms::setAtomsNlocal(int n){
   gatindex.resize(n);
   if(dd){
     dd.g2l.resize(natoms,-1);
+// Since these vectors are sent with MPI by using e.g.
+// &dd.positionsToBeSent[0]
+// we make sure they are non-zero-sized so as to
+// avoid errors when doing boundary check
+    if(n==0) n++;
     dd.positionsToBeSent.resize(n*5,0.0);
     dd.positionsToBeReceived.resize(natoms*5,0.0);
     dd.indexToBeSent.resize(n,0);