Index: src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp	(revision 8481f580f7eafc0b13e6e68cdf89b543f83e98aa)
+++ src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp	(revision beadd01e38c8b43b7e036136cab8a85e047de252)
@@ -121,5 +121,5 @@
           ++atomiter) {
         // create atom objects in scene
-        atomInserted(*atomiter);
+        atomInserted((*atomiter)->getId());
 
         // create bond objects in scene
@@ -142,12 +142,13 @@
  * @param _atom atom to add
  */
-void GLWorldScene::atomInserted(const atom *_atom)
-{
-  LOG(3, "INFO: GLWorldScene: Received signal atomInserted for atom "+toString(_atom->getId())+".");
+void GLWorldScene::atomInserted(const atomicNumber_t _id)
+{
+  LOG(3, "INFO: GLWorldScene: Received signal atomInserted for atom "+toString(_id)+".");
+  const atom *_atom = World::getInstance().getAtom(AtomById(_id));
   GLMoleculeObject_atom *atomObject = new GLMoleculeObject_atom(meshSphere, this, _atom);
-  AtomNodeMap::iterator iter = AtomsinSceneMap.find(_atom->getId());
+  AtomNodeMap::iterator iter = AtomsinSceneMap.find(_id);
   ASSERT(iter == AtomsinSceneMap.end(),
       "GLWorldScene::atomAdded() - same atom "+_atom->getName()+" added again.");
-  AtomsinSceneMap.insert( make_pair(_atom->getId(), atomObject) );
+  AtomsinSceneMap.insert( make_pair(_id, atomObject) );
 
   qRegisterMetaType<atomId_t>("atomId_t");
Index: src/UIElements/Views/Qt4/Qt3D/GLWorldScene.hpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLWorldScene.hpp	(revision 8481f580f7eafc0b13e6e68cdf89b543f83e98aa)
+++ src/UIElements/Views/Qt4/Qt3D/GLWorldScene.hpp	(revision beadd01e38c8b43b7e036136cab8a85e047de252)
@@ -78,5 +78,5 @@
 private slots:
   void atomClicked(atomId_t no);
-  void atomInserted(const atom *_atom);
+  void atomInserted(const atomicNumber_t _id);
   void atomRemoved(const atomicNumber_t _id);
   void moleculeRemoved(const molecule *_molecule);
Index: src/UIElements/Views/Qt4/Qt3D/GLWorldView.cpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLWorldView.cpp	(revision 8481f580f7eafc0b13e6e68cdf89b543f83e98aa)
+++ src/UIElements/Views/Qt4/Qt3D/GLWorldView.cpp	(revision beadd01e38c8b43b7e036136cab8a85e047de252)
@@ -85,5 +85,5 @@
   connect(worldscene, SIGNAL(changed()), this, SIGNAL(changed()));
   connect(worldscene, SIGNAL(hoverChanged(const atom *)), this, SLOT(sceneHoverSignalled(const atom *)));
-  connect(this, SIGNAL(atomInserted(const atom *)), worldscene, SLOT(atomInserted(const atom *)));
+  connect(this, SIGNAL(atomInserted(const atomicNumber_t)), worldscene, SLOT(atomInserted(const atomicNumber_t)));
   connect(this, SIGNAL(atomRemoved(const atomicNumber_t)), worldscene, SLOT(atomRemoved(const atomicNumber_t)));
   connect(this, SIGNAL(worldSelectionChanged()), worldscene, SLOT(worldSelectionChanged()));
@@ -318,9 +318,9 @@
       case World::AtomInserted:
       {
-        const atom *_atom = World::getInstance().lastChanged<atom>();
+        const atomicNumber_t _id = World::getInstance().lastChanged<atom>()->getId();
   #ifdef LOG_OBSERVER
-        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that atom "+toString(_atom->getId())+" has been inserted.";
+        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that atom "+toString(_id)+" has been inserted.";
   #endif
-        emit atomInserted(_atom);
+        emit atomInserted(_id);
         break;
       }
@@ -329,5 +329,5 @@
         const atomicNumber_t _id = World::getInstance().lastChanged<atom>()->getId();
   #ifdef LOG_OBSERVER
-        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that atom "+toString(_atom->getId())+" has been removed.";
+        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that atom "+toString(_id)+" has been removed.";
   #endif
         emit atomRemoved(_id);
Index: src/UIElements/Views/Qt4/Qt3D/GLWorldView.hpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLWorldView.hpp	(revision 8481f580f7eafc0b13e6e68cdf89b543f83e98aa)
+++ src/UIElements/Views/Qt4/Qt3D/GLWorldView.hpp	(revision beadd01e38c8b43b7e036136cab8a85e047de252)
@@ -55,5 +55,5 @@
 signals:
   void changed();
-  void atomInserted(const atom *_atom);
+  void atomInserted(const atomicNumber_t _id);
   void atomRemoved(const atomicNumber_t _id);
   void moleculeInserted(const molecule *_molecule);
