Index: src/Actions/MoleculeAction/StretchBondAction.cpp
===================================================================
--- src/Actions/MoleculeAction/StretchBondAction.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/Actions/MoleculeAction/StretchBondAction.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -61,5 +61,6 @@
     return Action::failure;
   }
-  const molecule *mol = atoms[0]->getMolecule();
+  molecule *mol = World::getInstance().
+      getMolecule(MoleculeById(atoms[0]->getMolecule()->getId()));
   if (mol != atoms[1]->getMolecule()) {
     STATUS("The two selected atoms must belong to the same molecule.");
@@ -101,6 +102,8 @@
   const Vector NegativeShift = -state->shift * state->bondplane.getNormal();
   Box &domain = World::getInstance().getDomain();
-  for (molecule::iterator iter = state->mol->begin();
-      iter != state->mol->end(); ++iter) {
+  molecule *mol = World::getInstance().
+      getMolecule(MoleculeById(state->mol->getId()));
+  for (molecule::iterator iter = mol->begin();
+      iter != mol->end(); ++iter) {
     const Vector &position = (*iter)->getPosition();
     // for each atom determine on which side of plane it is and shift accordingly
@@ -122,6 +125,8 @@
   const Vector NegativeShift = -state->shift * state->bondplane.getNormal();
   Box &domain = World::getInstance().getDomain();
-  for (molecule::iterator iter = state->mol->begin();
-      iter != state->mol->end(); ++iter) {
+  molecule *mol = World::getInstance().
+      getMolecule(MoleculeById(state->mol->getId()));
+  for (molecule::iterator iter = mol->begin();
+      iter != mol->end(); ++iter) {
     const Vector &position = (*iter)->getPosition();
     // for each atom determine on which side of plane it is and shift accordingly
Index: src/Actions/SelectionAction/Molecules/MoleculeByIdAction.cpp
===================================================================
--- src/Actions/SelectionAction/Molecules/MoleculeByIdAction.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/Actions/SelectionAction/Molecules/MoleculeByIdAction.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -65,5 +65,6 @@
   undomolids.reserve(molids.size());
   for (molids_t::const_iterator iter = molids.begin(); iter != molids.end(); ++iter) {
-    const molecule *Walker = World::getInstance().getMolecule(MoleculeById(*iter));
+    const molecule *Walker = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(*iter));
     if (Walker != NULL) {
       if (!World::getInstance().isSelected(Walker)) {
@@ -105,5 +106,6 @@
   for (molids_t::const_iterator iter = state->undomolids.begin();
       iter != state->undomolids.end(); ++iter) {
-    const molecule *Walker = World::getInstance().getMolecule(MoleculeById(*iter));
+    const molecule *Walker = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(*iter));
     World::getInstance().unselectMolecule(Walker);
   }
@@ -117,5 +119,6 @@
   for (molids_t::const_iterator iter = state->undomolids.begin();
       iter != state->undomolids.end(); ++iter) {
-    const molecule *Walker = World::getInstance().getMolecule(MoleculeById(*iter));
+    const molecule *Walker = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(*iter));
     World::getInstance().selectMolecule(Walker);
   }
Index: src/Actions/SelectionAction/Molecules/MoleculeByOrderAction.cpp
===================================================================
--- src/Actions/SelectionAction/Molecules/MoleculeByOrderAction.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/Actions/SelectionAction/Molecules/MoleculeByOrderAction.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -54,5 +54,6 @@
 
 ActionState::ptr SelectionMoleculeByOrderAction::performCall() {
-  molecule *mol = World::getInstance().getMolecule(MoleculeByOrder(params.molindex.get()));
+  const molecule *mol = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeByOrder(params.molindex.get()));
 
   if (mol != NULL) {
Index: src/Actions/SelectionAction/Molecules/NotMoleculeByIdAction.cpp
===================================================================
--- src/Actions/SelectionAction/Molecules/NotMoleculeByIdAction.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/Actions/SelectionAction/Molecules/NotMoleculeByIdAction.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -64,5 +64,6 @@
   undomolids.reserve(molids.size());
   for (molids_t::const_iterator iter = molids.begin(); iter != molids.end(); ++iter) {
-    const molecule *Walker = World::getInstance().getMolecule(MoleculeById(*iter));
+    const molecule *Walker = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(*iter));
     if (Walker != NULL) {
       if (World::getInstance().isSelected(Walker)) {
@@ -104,5 +105,6 @@
   for (molids_t::const_iterator iter = state->undomolids.begin();
       iter != state->undomolids.end(); ++iter) {
-    const molecule *Walker = World::getInstance().getMolecule(MoleculeById(*iter));
+    const molecule *Walker = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(*iter));
     World::getInstance().selectMolecule(Walker);
   }
@@ -116,5 +118,6 @@
   for (molids_t::const_iterator iter = state->undomolids.begin();
       iter != state->undomolids.end(); ++iter) {
-    const molecule *Walker = World::getInstance().getMolecule(MoleculeById(*iter));
+    const molecule *Walker = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(*iter));
     World::getInstance().unselectMolecule(Walker);
   }
Index: src/Actions/SelectionAction/Molecules/NotMoleculeByOrderAction.cpp
===================================================================
--- src/Actions/SelectionAction/Molecules/NotMoleculeByOrderAction.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/Actions/SelectionAction/Molecules/NotMoleculeByOrderAction.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -54,5 +54,6 @@
 
 ActionState::ptr SelectionNotMoleculeByOrderAction::performCall() {
-  molecule *mol = World::getInstance().getMolecule(MoleculeByOrder(params.molindex.get()));
+  const molecule *mol = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeByOrder(params.molindex.get()));
 
   if (mol != NULL) {
Index: src/Descriptors/unittests/MoleculeDescriptorUnitTest.cpp
===================================================================
--- src/Descriptors/unittests/MoleculeDescriptorUnitTest.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/Descriptors/unittests/MoleculeDescriptorUnitTest.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -111,12 +111,15 @@
 void MoleculeDescriptorTest::MoleculeIdTest(){
   // test Molecules from boundaries and middle of the set
-  molecule* testMolecule;
-  testMolecule = World::getInstance().getMolecule(MoleculeById(moleculeIds[0]));
+  const molecule* testMolecule;
+  testMolecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(moleculeIds[0]));
   CPPUNIT_ASSERT(testMolecule);
   CPPUNIT_ASSERT_EQUAL( moleculeIds[0], testMolecule->getId());
-  testMolecule = World::getInstance().getMolecule(MoleculeById(moleculeIds[MOLECULE_COUNT/2]));
+  testMolecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(moleculeIds[MOLECULE_COUNT/2]));
   CPPUNIT_ASSERT(testMolecule);
   CPPUNIT_ASSERT_EQUAL( moleculeIds[MOLECULE_COUNT/2], testMolecule->getId());
-  testMolecule = World::getInstance().getMolecule(MoleculeById(moleculeIds[MOLECULE_COUNT-1]));
+  testMolecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(moleculeIds[MOLECULE_COUNT-1]));
   CPPUNIT_ASSERT(testMolecule);
   CPPUNIT_ASSERT_EQUAL( moleculeIds[MOLECULE_COUNT-1], testMolecule->getId());
@@ -132,5 +135,6 @@
   }
   // test from outside of set
-  testMolecule = World::getInstance().getMolecule(MoleculeById(outsideId));
+  testMolecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(outsideId));
   CPPUNIT_ASSERT(!testMolecule);
 }
@@ -189,5 +193,5 @@
 void MoleculeDescriptorTest::MoleculeNameTest()
 {
-  molecule* testMolecule;
+  const molecule* testMolecule;
 
   // name each molecule
@@ -197,10 +201,12 @@
   // retrieve each
   for(int i=1;i<=MOLECULE_COUNT;++i) {
-    testMolecule = World::getInstance().getMolecule(MoleculeByName(toString(i)));
+    testMolecule = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeByName(toString(i)));
     CPPUNIT_ASSERT_EQUAL( moleculeIds[i-1], testMolecule->getId());
   }
 
   // check for non-present name
-  testMolecule = World::getInstance().getMolecule(MoleculeByName("not present"));
+  testMolecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeByName("not present"));
   CPPUNIT_ASSERT(!testMolecule);
 }
@@ -209,9 +215,10 @@
 void MoleculeDescriptorTest::MoleculeOrderTest()
 {
-  molecule* testMolecule;
+  const molecule* testMolecule;
 
   // test in normal order: 1, 2, ...
   for(int i=1;i<=MOLECULE_COUNT;++i){
-    testMolecule = World::getInstance().getMolecule(MoleculeByOrder(i));
+    testMolecule = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeByOrder(i));
     CPPUNIT_ASSERT_EQUAL( moleculeIds[i-1], testMolecule->getId());
   }
@@ -219,12 +226,15 @@
   // test in reverse order: -1, -2, ...
   for(int i=1; i<= MOLECULE_COUNT;++i){
-    testMolecule = World::getInstance().getMolecule(MoleculeByOrder(-i));
+    testMolecule = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeByOrder(-i));
     CPPUNIT_ASSERT_EQUAL( moleculeIds[(int)MOLECULE_COUNT-i], testMolecule->getId());
   }
 
   // test from outside of set
-  testMolecule = World::getInstance().getMolecule(MoleculeByOrder(MOLECULE_COUNT+1));
-  CPPUNIT_ASSERT(!testMolecule);
-  testMolecule = World::getInstance().getMolecule(MoleculeByOrder(-MOLECULE_COUNT-1));
-  CPPUNIT_ASSERT(!testMolecule);
-}
+  testMolecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeByOrder(MOLECULE_COUNT+1));
+  CPPUNIT_ASSERT(!testMolecule);
+  testMolecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeByOrder(-MOLECULE_COUNT-1));
+  CPPUNIT_ASSERT(!testMolecule);
+}
Index: src/Parameters/StreamOperators.hpp
===================================================================
--- src/Parameters/StreamOperators.hpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/Parameters/StreamOperators.hpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -127,5 +127,6 @@
   ConvertTo<unsigned int> converter;
   const moleculeId_t temp_value = converter(line);
-  const molecule *mol = World::getInstance().getMolecule(MoleculeById(temp_value));
+  const molecule *mol = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(temp_value));
   ASSERT( mol != NULL,
       "operator>>(std::istream& ist, const molecule* & m) - invalid molecule id "
@@ -162,5 +163,6 @@
       iter != tok.end(); ++iter) {
     const moleculeId_t temp_value = converter(*iter);
-    const molecule *mol = World::getInstance().getMolecule(MoleculeById(temp_value));
+    const molecule *mol = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(temp_value));
     ASSERT( mol != NULL,
         "operator>>(std::istream& ist, std::vector<const molecule*> & m) - invalid molecule id "
Index: src/Parameters/Validators/Specific/MoleculeIdValidator.cpp
===================================================================
--- src/Parameters/Validators/Specific/MoleculeIdValidator.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/Parameters/Validators/Specific/MoleculeIdValidator.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -43,5 +43,5 @@
 bool MoleculeIdValidator::isValid(const moleculeId_t & _value) const
 {
-  return (World::getInstance().getMolecule(MoleculeById(_value)) != NULL);
+  return (const_cast<const World &>(World::getInstance()).getMolecule(MoleculeById(_value)) != NULL);
 }
 
Index: src/UIElements/CommandLineUI/Query/MoleculesCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/MoleculesCommandLineQuery.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/UIElements/CommandLineUI/Query/MoleculesCommandLineQuery.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -61,5 +61,6 @@
     }
     for (std::vector<int>::iterator iter = IdxOfMol.begin(); iter != IdxOfMol.end(); ++iter) {
-      const molecule *temp_element = World::getInstance().getMolecule(MoleculeById(*iter));
+      const molecule *temp_element = const_cast<const World &>(World::getInstance()).
+          getMolecule(MoleculeById(*iter));
       if (temp_element)
         temp.push_back(temp_element);
Index: src/UIElements/Views/Qt4/MoleculeList/QtMoleculeItem.cpp
===================================================================
--- src/UIElements/Views/Qt4/MoleculeList/QtMoleculeItem.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/UIElements/Views/Qt4/MoleculeList/QtMoleculeItem.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -71,5 +71,6 @@
 void QtMoleculeItem::signOnToMolecule()
 {
-  const molecule *mol = World::getInstance().getMolecule(MoleculeById(molid));
+  const molecule * const mol = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(molid));
   if (mol != NULL) {
     if (!IsSignedOn)
@@ -83,5 +84,6 @@
 void QtMoleculeItem::signOffFromMolecule()
 {
-  const molecule *mol = World::getInstance().getMolecule(MoleculeById(molid));
+  const molecule * const mol = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(molid));
   if (mol != NULL) {
     if (IsSignedOn)
@@ -140,5 +142,5 @@
 const molecule * const QtMoleculeItem::getMolecule() const
 {
-  const molecule * mol = World::getInstance().getMolecule(MoleculeById(molid));
+  const molecule * const mol = const_cast<const World &>(World::getInstance()).getMolecule(MoleculeById(molid));
   ASSERT (mol != NULL,
       "QtMoleculeItem::getMolecule() - mol with "+toString(molid)+" is gone.");
Index: src/UIElements/Views/Qt4/MoleculeList/QtMoleculeList.cpp
===================================================================
--- src/UIElements/Views/Qt4/MoleculeList/QtMoleculeList.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/UIElements/Views/Qt4/MoleculeList/QtMoleculeList.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -578,5 +578,6 @@
             QtMoleculeItemFactory::NAME));
     const moleculeId_t molid = ItemToMoleculeId(_item);
-    const molecule *mol = World::getInstance().getMolecule(MoleculeById(molid));
+    const molecule *mol = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(molid));
     if (std::binary_search(
             toBeRemovedItems_copy.begin(), toBeRemovedItems_copy.end(),
@@ -624,6 +625,6 @@
 //    LOG(1, "Adding molecule " << (*moliter)->getName());
     // check that World knows the molecule still
-    const molecule * const mol =
-        World::getInstance().getMolecule(MoleculeById((*moliter)->getId()));
+    const molecule * const mol = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById((*moliter)->getId()));
     if ((mol != NULL) && (mol == *moliter)) {
       addMolecule(mol);
Index: src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_atomcount.hpp
===================================================================
--- src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_atomcount.hpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_atomcount.hpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -44,5 +44,6 @@
   void internal_updateState()
   {
-    const molecule * mol = World::getInstance().getMolecule(MoleculeById(molid));
+    const molecule * mol = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(molid));
     if (mol != NULL)
       setText(QString::number(mol->getAtomCount()));
Index: src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_formula.hpp
===================================================================
--- src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_formula.hpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_formula.hpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -47,5 +47,6 @@
   void internal_updateState()
   {
-    const molecule * mol = World::getInstance().getMolecule(MoleculeById(molid));
+    const molecule * mol = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(molid));
     if (mol != NULL)
       setText(QString(mol->getFormula().toString().c_str()));
Index: src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_name.hpp
===================================================================
--- src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_name.hpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_name.hpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -44,5 +44,6 @@
   void internal_updateState()
   {
-    const molecule * mol = World::getInstance().getMolecule(MoleculeById(molid));
+    const molecule * mol = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(molid));
     if (mol != NULL)
       setText(QString(mol->getName().c_str()));
Index: src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.cpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -69,5 +69,6 @@
 static QGLSceneNode *createMoleculeMesh(const moleculeId_t molid, QObject *parent)
 {
-  const molecule *molref = World::getInstance().getMolecule(MoleculeById(molid));
+  const molecule *molref = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(molid));
   if (molref == NULL) {
     ELOG(1, "Could not createMoleculeMesh, molecule with id " << molid << " already gone.");
@@ -156,5 +157,6 @@
 {
   // sign on as observer (obtain non-const instance before)
-  const molecule *_molecule = World::getInstance().getMolecule(MoleculeById(moleculeid));
+  const molecule *_molecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(moleculeid));
   if (_molecule != NULL) {
     _molecule->signOn(this, molecule::AtomInserted);
@@ -194,5 +196,6 @@
 {
   // sign on as observer (obtain non-const instance before)
-  const molecule *_molecule = World::getInstance().getMolecule(MoleculeById(moleculeid));
+  const molecule *_molecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(moleculeid));
   if (_molecule != NULL) {
     _molecule->signOn(this, molecule::AtomInserted);
@@ -225,5 +228,6 @@
 {
   if (isSignedOn) {
-    const molecule *_molecule = World::getInstance().getMolecule(MoleculeById(moleculeid));
+    const molecule *_molecule = const_cast<const World &>(World::getInstance()).
+        getMolecule(MoleculeById(moleculeid));
     if (_molecule != NULL) {
       _molecule->signOff(this, molecule::AtomInserted);
@@ -247,5 +251,6 @@
 void GLMoleculeObject_molecule::init()
 {
-  const molecule *_molecule = World::getInstance().getMolecule(MoleculeById(moleculeid));
+  const molecule * const _molecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(moleculeid));
   if (_molecule == NULL) {
     ELOG(1, "GLMoleculeObject_molecule cannot init, molecule with "
@@ -320,5 +325,6 @@
 void GLMoleculeObject_molecule::reinit()
 {
-  const molecule *_molecule = World::getInstance().getMolecule(MoleculeById(moleculeid));
+  const molecule * const _molecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(moleculeid));
   if (_molecule == NULL) {
     ELOG(1, "GLMoleculeObject_molecule cannot reinit, molecule with "
@@ -348,5 +354,6 @@
 {
   isBoundingBoxUptodate = true;
-  const molecule *_molecule = World::getInstance().getMolecule(MoleculeById(moleculeid));
+  const molecule * const _molecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(moleculeid));
   if (_molecule == NULL) {
     ELOG(1, "GLMoleculeObject_molecule cannot updateBoundingBox, molecule with "
@@ -375,5 +382,6 @@
 void GLMoleculeObject_molecule::recieveNotification(Observable *publisher, Notification_ptr notification)
 {
-  const molecule *_molecule = World::getInstance().getMolecule(MoleculeById(moleculeid));
+  const molecule * const _molecule = const_cast<const World &>(World::getInstance()).
+      getMolecule(MoleculeById(moleculeid));
   if (publisher == dynamic_cast<const Observable*>(_molecule)){
     // notofication from atom
Index: src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp	(revision 795c0fbd35ce4d14a5986636e88a0fe5fcc53381)
+++ src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp	(revision 63fb7a963007e0f94b955d96ca949cd435eacb2a)
@@ -162,5 +162,6 @@
 {
    LOG(3, "INFO: GLMoleculeObject_molecule - mol " << no << " has been clicked.");
-   const molecule *mol= World::getInstance().getMolecule(MoleculeById(no));
+   const molecule * const mol= const_cast<const World &>(World::getInstance()).
+       getMolecule(MoleculeById(no));
    ASSERT(mol, "Atom without molecule has been clicked.");
    molids_t ids(1, mol->getId());
