Index: src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.cpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.cpp	(revision 1d9b6dd666010d66bb843c17134d6df49aa030df)
+++ src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.cpp	(revision 76c238dfdd440371633103e91a848b5dcc8838ee)
@@ -183,5 +183,5 @@
 
   // we need at least three points for tesselation
-  if (getPresentAtoms().size() >= 3) {
+  if (AtomsinSceneMap.size() >= 3) {
     // Tesselate the points.
     Tesselation T;
@@ -258,6 +258,4 @@
   LOG(4, "INFO: GLMoleculeObject_molecule: new index is "+toString(newId)+".");
   setObjectId(newId);
-
-  emit indexChanged(this, oldId, newId);
 }
 
@@ -361,6 +359,7 @@
 void GLMoleculeObject_molecule::atomInserted(QtObservedAtom::ptr _atom)
 {
-  const atomId_t atomid = _atom->getAtomIndex();
-  LOG(3, "INFO: GLMoleculeObject_molecule: Received signal atomInserted for atom "+toString(atomid)+".");
+  const ObservedValue_Index_t atomid = _atom->getIndex();
+  LOG(3, "INFO: GLMoleculeObject_molecule: Received signal atomInserted for atom "
+      << _atom->getAtomIndex());
 
   if (_atom) {
@@ -371,8 +370,10 @@
             _atom);
     ASSERT( atomObject != NULL,
-        "GLMoleculeObject_molecule::atomInserted - could not create atom object for "+toString(atomid));
+        "GLMoleculeObject_molecule::atomInserted - could not create atom object for "
+        +toString(_atom->getAtomIndex()));
     AtomNodeMap::iterator iter = AtomsinSceneMap.find(atomid);
     ASSERT(iter == AtomsinSceneMap.end(),
-        "GLMoleculeObject_molecule::atomInserted - same atom with id "+toString(atomid)+" added again.");
+        "GLMoleculeObject_molecule::atomInserted - same atom with id "
+        +toString(_atom->getAtomIndex())+" added again.");
     AtomsinSceneMap.insert( make_pair(atomid, atomObject) );
 
@@ -389,5 +390,5 @@
 
     if (m_objectId  == -1)
-      setObjectId(atomid);
+      setObjectId(_atom->getAtomIndex());
 
     // first reset bonds when signals connections have been made
@@ -405,11 +406,8 @@
  * @param _id id of atom to remove
  */
-void GLMoleculeObject_molecule::atomRemoved(const atomId_t _id)
+void GLMoleculeObject_molecule::atomRemoved(ObservedValue_Index_t _id)
 {
   LOG(3, "INFO: GLMoleculeObject_molecule: Received signal atomRemoved for atom "+toString(_id)+".");
   // bonds are removed by signal coming from ~bond
-
-  if ((unsigned int)m_objectId == _id)
-    setObjectId(-1);
 
   // remove atoms
@@ -437,5 +435,5 @@
     for (AtomNodeMap::iterator iter = AtomsinSceneMap.begin();iter != AtomsinSceneMap.end(); ++ iter){
       if (iter->second == atomObject)
-        hoverAtomId = iter->first;
+        hoverAtomId = iter->second->objectId();
     }
 
@@ -554,37 +552,2 @@
   emit moleculeClicked(ObservedMolecule->getMolIndex());
 }
-
-void GLMoleculeObject_molecule::changeAtomId(
-    GLMoleculeObject_atom *ob,
-    const atomId_t oldId,
-    const atomId_t newId)
-{
-  LOG(3, "INFO: GLMoleculeObject_molecule - change atom id " << oldId << " to " << newId << ".");
-
-  // Remove from map.
-  AtomNodeMap::iterator iter = AtomsinSceneMap.find(oldId);
-  ASSERT(iter != AtomsinSceneMap.end(),
-      "GLMoleculeObject_molecule::changeAtomId() - atom with old id "+toString(oldId)+" not on display.");
-  ASSERT(iter->second == ob,
-      "GLMoleculeObject_molecule::changeAtomId() - atom with id "
-      +toString(oldId)+" does not match with object in AtomsinSceneMap.");
-  AtomsinSceneMap.erase(iter);
-
-  // Reinsert with new id.
-  {
-    AtomNodeMap::iterator iter = AtomsinSceneMap.find(newId);
-    ASSERT(iter == AtomsinSceneMap.end(),
-          "GLMoleculeObject_molecule::changeAtomId() - atom with new id "+toString(newId)+" already known.");
-  }
-  AtomsinSceneMap.insert( make_pair(newId, ob) );
-}
-
-
-GLMoleculeObject_molecule::atoms_t GLMoleculeObject_molecule::getPresentAtoms() const
-{
-  atoms_t returnAtomIds;
-  returnAtomIds.insert(
-      MapKeyConstIterator<AtomNodeMap::const_iterator>(const_cast<const AtomNodeMap &>(AtomsinSceneMap).begin()),
-      MapKeyConstIterator<AtomNodeMap::const_iterator>(const_cast<const AtomNodeMap &>(AtomsinSceneMap).end()));
-  return returnAtomIds;
-}
Index: src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.hpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.hpp	(revision 1d9b6dd666010d66bb843c17134d6df49aa030df)
+++ src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.hpp	(revision 76c238dfdd440371633103e91a848b5dcc8838ee)
@@ -68,5 +68,4 @@
   void hoverChanged(const atomId_t);
   void hoverChanged(const moleculeId_t, int);
-  void indexChanged(GLMoleculeObject_molecule *, const moleculeId_t, const moleculeId_t);
   void atomClicked(atomId_t);
   void moleculeClicked(moleculeId_t);
@@ -80,9 +79,8 @@
   void wasClicked();
   void atomInserted(QtObservedAtom::ptr _atom);
-  void atomRemoved(const atomId_t _id);
+  void atomRemoved(ObservedValue_Index_t _id);
   void bondInserted(const atomId_t, const atomId_t, const GLMoleculeObject_bond::SideOfBond side);
   void bondRemoved(const atomId_t leftnr, const atomId_t rightnr);
   void hoverChangedSignalled(GLMoleculeObject *ob);
-  void changeAtomId(GLMoleculeObject_atom *, const atomId_t, const atomId_t);
 
   void setVisible(bool value);
@@ -100,13 +98,4 @@
 
   void init(const moleculeId_t _molid);
-
-  //!> typedef for the internal set of atoms
-  typedef std::set<atomId_t> atoms_t;
-
-  /** Getter to contained atoms contained in \a ObservedValues.
-   *
-   * \return molecule's contained atoms
-   */
-  atoms_t getPresentAtoms() const;
 
 private:
@@ -126,8 +115,5 @@
   QGeometryData TesselationHull;
 
-  //!> contains the set of atoms displayed
-  atoms_t DisplayedAtoms;
-
-  typedef std::map< atomId_t, GLMoleculeObject_atom* > AtomNodeMap;
+  typedef std::map< ObservedValue_Index_t, GLMoleculeObject_atom* > AtomNodeMap;
   typedef std::map< BondIds , GLMoleculeObject_bond* > BondNodeMap;
   AtomNodeMap AtomsinSceneMap;
