diff --git a/src/generic/DumpMassCharge.cpp b/src/generic/DumpMassCharge.cpp
index 8b6c3bf1ade2b638428dd7fb1c55bc266e26c8f9..d4adfc24f884fea040b8bdd9dda5531723d05ea7 100644
--- a/src/generic/DumpMassCharge.cpp
+++ b/src/generic/DumpMassCharge.cpp
@@ -96,10 +96,12 @@ class DumpMassCharge:
 {
   string file;
   bool first;
+  bool second;
 public:
   explicit DumpMassCharge(const ActionOptions&);
   ~DumpMassCharge();
   static void registerKeywords( Keywords& keys );
+  void prepare();
   void calculate() {}
   void apply() {}
   void update();
@@ -120,7 +122,8 @@ DumpMassCharge::DumpMassCharge(const ActionOptions&ao):
   Action(ao),
   ActionAtomistic(ao),
   ActionPilot(ao),
-  first(true)
+  first(true),
+  second(true)
 {
   vector<AtomNumber> atoms;
   parse("FILE",file);
@@ -142,6 +145,13 @@ DumpMassCharge::DumpMassCharge(const ActionOptions&ao):
   requestAtoms(atoms);
 }
 
+void DumpMassCharge::prepare() {
+  if(!first && second) {
+    requestAtoms(vector<AtomNumber>());
+    second=false;
+  }
+}
+
 void DumpMassCharge::update() {
   if(!first) return;
   first=false;