Index: src/Parser/MpqcParser.cpp
===================================================================
--- src/Parser/MpqcParser.cpp	(revision f01769bf04baacedde88443ce16ab2f2dd809f30)
+++ src/Parser/MpqcParser.cpp	(revision a58c16f47065e9446b7916a407271c6544180022)
@@ -294,8 +294,9 @@
 {
   Vector center;
-//  vector<atom *> allatoms = World::getInstance().getAllAtoms();
+//  vector<const atom *> allatoms = const_cast<const World &>(World::getInstance()).
+//      getAllAtoms();
 
   // calculate center
-//  for (std::vector<atom *>::const_iterator runner = atoms.begin();runner != atoms.end(); ++runner)
+//  for (std::vector<const atom *>::const_iterator runner = atoms.begin();runner != atoms.end(); ++runner)
 //    center += (*runner)->getPosition();
 //  center.Scale(1./(double)atoms.size());
Index: src/Parser/PdbParser.cpp
===================================================================
--- src/Parser/PdbParser.cpp	(revision f01769bf04baacedde88443ce16ab2f2dd809f30)
+++ src/Parser/PdbParser.cpp	(revision a58c16f47065e9446b7916a407271c6544180022)
@@ -200,6 +200,6 @@
   // check for maximum number of time steps
   size_t max_timesteps = 0;
-  BOOST_FOREACH(atom *_atom, World::getInstance().getAllAtoms()) {
-    LOG(4, "INFO: Atom " << _atom->getName() << " " << *dynamic_cast<AtomInfo *>(_atom) << ".");
+  BOOST_FOREACH(const atom * _atom, const_cast<const World &>(World::getInstance()).getAllAtoms()) {
+    LOG(4, "INFO: Atom " << _atom->getName() << " " << *dynamic_cast<const AtomInfo *>(_atom) << ".");
     if (_atom->getTrajectorySize() > max_timesteps)
       max_timesteps = _atom->getTrajectorySize();
@@ -546,5 +546,5 @@
     newAtom = World::getInstance().getAtom(AtomById(AtomID_global));
     LOG(5, "INFO: Listing all present atoms with id.");
-    BOOST_FOREACH(atom *_atom, World::getInstance().getAllAtoms())
+    BOOST_FOREACH(const atom *_atom, const_cast<const World &>(World::getInstance()).getAllAtoms())
       LOG(5, "INFO: " << *_atom << " with id " << _atom->getId());
   }
@@ -842,6 +842,7 @@
 {
   bool status = true;
-  World::AtomComposite atoms = World::getInstance().getAllAtoms();
-  for (World::AtomComposite::const_iterator iter = atoms.begin(); iter != atoms.end(); ++iter) {
+  World::ConstAtomComposite atoms = const_cast<const World &>(World::getInstance()).
+      getAllAtoms();
+  for (World::ConstAtomComposite::const_iterator iter = atoms.begin(); iter != atoms.end(); ++iter) {
     if ((additionalAtomData.find((*iter)->getId()) != additionalAtomData.end())
         && (b.additionalAtomData.find((*iter)->getId()) != b.additionalAtomData.end())) {
Index: src/Parser/XmlParser.cpp
===================================================================
--- src/Parser/XmlParser.cpp	(revision f01769bf04baacedde88443ce16ab2f2dd809f30)
+++ src/Parser/XmlParser.cpp	(revision a58c16f47065e9446b7916a407271c6544180022)
@@ -202,6 +202,6 @@
   }
 
-  BOOST_FOREACH(atom *_atom, World::getInstance().getAllAtoms())
-    LOG(3, "INFO: Atom " << _atom->getName() << " " << *dynamic_cast<AtomInfo *>(_atom) << ".");
+  BOOST_FOREACH(const atom *_atom, const_cast<const World &>(World::getInstance()).getAllAtoms())
+    LOG(3, "INFO: Atom " << _atom->getName() << " " << *dynamic_cast<const AtomInfo *>(_atom) << ".");
 
   // refresh atom::nr and atom::name
Index: src/Parser/XyzParser.cpp
===================================================================
--- src/Parser/XyzParser.cpp	(revision f01769bf04baacedde88443ce16ab2f2dd809f30)
+++ src/Parser/XyzParser.cpp	(revision a58c16f47065e9446b7916a407271c6544180022)
@@ -143,6 +143,6 @@
     ++step;
   }
-  BOOST_FOREACH(atom *_atom, World::getInstance().getAllAtoms())
-    LOG(3, "INFO: Atom " << _atom->getName() << " " << *dynamic_cast<AtomInfo *>(_atom) << ".");
+  BOOST_FOREACH(const atom *_atom, const_cast<const World &>(World::getInstance()).getAllAtoms())
+    LOG(3, "INFO: Atom " << _atom->getName() << " " << *dynamic_cast<const AtomInfo *>(_atom) << ".");
 
   // refresh atom::nr and atom::name
Index: src/Parser/unittests/ParserPsi3UnitTest.cpp
===================================================================
--- src/Parser/unittests/ParserPsi3UnitTest.cpp	(revision f01769bf04baacedde88443ce16ab2f2dd809f30)
+++ src/Parser/unittests/ParserPsi3UnitTest.cpp	(revision a58c16f47065e9446b7916a407271c6544180022)
@@ -303,6 +303,7 @@
   // check that positions are right
   Vector PositionSum;
-  std::vector<atom *> atoms = World::getInstance().getAllAtoms();
-  for (std::vector<atom *>::const_iterator iter = atoms.begin();
+  std::vector<const atom *> atoms = const_cast<const World &>(World::getInstance()).
+      getAllAtoms();
+  for (std::vector<const atom *>::const_iterator iter = atoms.begin();
       iter != atoms.end();
       ++iter)
Index: src/Parser/unittests/ParserXyzUnitTest.cpp
===================================================================
--- src/Parser/unittests/ParserXyzUnitTest.cpp	(revision f01769bf04baacedde88443ce16ab2f2dd809f30)
+++ src/Parser/unittests/ParserXyzUnitTest.cpp	(revision a58c16f47065e9446b7916a407271c6544180022)
@@ -143,8 +143,8 @@
 
   // 3 not 6 atoms!
-  CPPUNIT_ASSERT_EQUAL(3, World::getInstance().numAtoms());
+  CPPUNIT_ASSERT_EQUAL(3, const_cast<const World &>(World::getInstance()).numAtoms());
 
   // check for trajectory size
-  BOOST_FOREACH (atom *_atom, World::getInstance().getAllAtoms())
+  BOOST_FOREACH (const atom *_atom, const_cast<const World &>(World::getInstance()).getAllAtoms())
     CPPUNIT_ASSERT_EQUAL((size_t) 2, _atom->getTrajectorySize());
 }
@@ -172,11 +172,12 @@
 
   // check for trajectory size of all 6! atoms
-  BOOST_FOREACH (atom *_atom, World::getInstance().getAllAtoms())
+  BOOST_FOREACH (const atom *_atom, const_cast<const World &>(World::getInstance()).getAllAtoms())
     CPPUNIT_ASSERT_EQUAL((size_t) 2, _atom->getTrajectorySize());
 
   // check every atom
-  std::vector<atom *> atoms = World::getInstance().getAllAtoms();
-  std::vector<atom *>::const_iterator firstiter = atoms.begin();
-  std::vector<atom *>::const_iterator seconditer = atoms.begin();
+  std::vector<const atom *> atoms = const_cast<const World &>(World::getInstance()).
+      getAllAtoms();
+  std::vector<const atom *>::const_iterator firstiter = atoms.begin();
+  std::vector<const atom *>::const_iterator seconditer = atoms.begin();
   for (size_t i=0;i<3;i++)
     ++seconditer;
