Index: src/UIElements/Qt4/InstanceBoard/QtObservedBond.cpp
===================================================================
--- src/UIElements/Qt4/InstanceBoard/QtObservedBond.cpp	(revision 785d89098de752b05e69ab46e0145f0a07a87128)
+++ src/UIElements/Qt4/InstanceBoard/QtObservedBond.cpp	(revision 7f185f928e77138d9f68a9af929ddf86c7ed5bf1)
@@ -114,7 +114,4 @@
   leftatom(_leftatom),
   rightatom(_rightatom),
-  oldleftatomId(_id.first),
-  oldrightatomId(_id.second),
-  oldmoleculeId(getMolecule(_bond)->getId()),
   board(_board),
   BoardIsGone(false),
@@ -281,33 +278,13 @@
   // pass thru to signals from both atoms
   connect( leftatom.get(), SIGNAL(indexChanged(const atomId_t, const atomId_t)),
-      this, SLOT(leftAtomIndexChanges(atomId_t, atomId_t)));
+      this, SIGNAL(leftAtomIndexChanged(atomId_t, atomId_t)));
   connect( leftatom.get(), SIGNAL(elementChanged()), this, SIGNAL(leftAtomElementChanged()));
   connect( leftatom.get(), SIGNAL(positionChanged()), this, SIGNAL(leftAtomPositionChanged()));
-  connect( leftatom.get(), SIGNAL(moleculeChanged()), this, SLOT(moleculeIndexChanges(moleculeId_t, moleculeId_t)));
+  connect( leftatom.get(), SIGNAL(moleculeChanged()), this, SIGNAL(leftmoleculeChanged()));
   connect( rightatom.get(), SIGNAL(indexChanged(const atomId_t, const atomId_t)),
-      this, SLOT(rightAtomIndexChanges(atomId_t, atomId_t)));
+      this, SIGNAL(rightAtomIndexChanged(atomId_t, atomId_t)));
   connect( rightatom.get(), SIGNAL(elementChanged()), this, SIGNAL(rightAtomElementChanged()));
   connect( rightatom.get(), SIGNAL(positionChanged()), this, SIGNAL(rightAtomPositionChanged()));
-}
-
-void QtObservedBond::leftAtomIndexChanges(atomId_t, atomId_t)
-{
-  const atomId_t newid = getLeftAtomIndex();
-  emit leftAtomIndexChanged(oldleftatomId, newid);
-  oldleftatomId = newid;
-}
-
-void QtObservedBond::rightAtomIndexChanges(atomId_t, atomId_t)
-{
-  const atomId_t newid = getRightAtomIndex();
-  emit rightAtomIndexChanged(oldrightatomId, newid);
-  oldrightatomId = newid;
-}
-
-void QtObservedBond::moleculeIndexChanges(moleculeId_t, moleculeId_t)
-{
-  const moleculeId_t newid = getMoleculeIndex();
-  emit moleculeIndexChanged(oldmoleculeId, newid);
-  oldmoleculeId = newid;
+  connect( rightatom.get(), SIGNAL(moleculeChanged()), this, SIGNAL(rightmoleculeChanged()));
 }
 
@@ -409,4 +386,9 @@
 }
 
+const moleculeId_t QtObservedBond::getLeftMoleculeIndex() const
+{
+  return leftatom->getMoleculeIndex();
+}
+
 const atomId_t& QtObservedBond::getRightAtomIndex() const
 {
@@ -424,11 +406,6 @@
 }
 
-const moleculeId_t QtObservedBond::getMoleculeIndex() const
-{
-  const moleculeId_t leftmolid = leftatom->getMoleculeIndex();
-  const moleculeId_t rightmolid = rightatom->getMoleculeIndex();
-  ASSERT( leftmolid == rightmolid,
-      "QtObservedBond::getMoleculeIndex() - left and right atom belong to different molecules, "
-      +toString(leftmolid)+" vs. "+toString(rightmolid));
-  return leftmolid;
-}
+const moleculeId_t QtObservedBond::getRightMoleculeIndex() const
+{
+  return rightatom->getMoleculeIndex();
+}
Index: src/UIElements/Qt4/InstanceBoard/QtObservedBond.hpp
===================================================================
--- src/UIElements/Qt4/InstanceBoard/QtObservedBond.hpp	(revision 785d89098de752b05e69ab46e0145f0a07a87128)
+++ src/UIElements/Qt4/InstanceBoard/QtObservedBond.hpp	(revision 7f185f928e77138d9f68a9af929ddf86c7ed5bf1)
@@ -123,4 +123,18 @@
   const int& getBondDegree() const;
 
+  /** Getter to the observed state of the left atom of this bond.
+   *
+   * \return const ref to left atom's observed state.
+   */
+  const QtObservedAtom* const getLeftAtom() const
+  { return leftatom.get(); }
+
+  /** Getter to the observed state of the right atom of this bond.
+   *
+   * \return const ref to right atom's observed state.
+   */
+  const QtObservedAtom* const getRightAtom() const
+  { return rightatom.get(); }
+
   /** Getter to bond's left atom index contained in \a ObservedValues.
    *
@@ -135,4 +149,10 @@
   const atomicNumber_t& getLeftAtomElement() const;
 
+  /** Getter to left atoms's molecule index contained in \a ObservedValues.
+   *
+   * \return left atom's molecule index
+   */
+  const moleculeId_t getLeftMoleculeIndex() const;
+
   /** Getter to bond's right atom position contained in \a ObservedValues.
    *
@@ -159,9 +179,9 @@
   const Vector& getRightAtomPosition() const;
 
-  /** Getter to bond's molecule index contained in \a ObservedValues.
-   *
-   * \return bond's molecule index
-   */
-  const moleculeId_t getMoleculeIndex() const;
+  /** Getter to right atom's molecule index contained in \a ObservedValues.
+   *
+   * \return right atom's molecule index
+   */
+  const moleculeId_t getRightMoleculeIndex() const;
 
   //!> typedef for internal observable counter maps
@@ -175,15 +195,12 @@
   void leftAtomElementChanged();
   void leftAtomPositionChanged();
+  void leftmoleculeChanged();
   void rightAtomIndexChanged(atomId_t, atomId_t);
   void rightAtomElementChanged();
   void rightAtomPositionChanged();
-  void moleculeIndexChanged(moleculeId_t, moleculeId_t);
+  void rightmoleculeChanged();
   void bondRemoved();
 
-private slots:
-
-  void leftAtomIndexChanges(atomId_t, atomId_t);
-  void rightAtomIndexChanges(atomId_t, atomId_t);
-  void moleculeIndexChanges(moleculeId_t, moleculeId_t);
+//private slots:
 
 private:
@@ -295,13 +312,4 @@
   const QtObservedAtom::ptr rightatom;
 
-  //!> contains still the old leftatom id after the index of the bond changed
-  atomId_t oldleftatomId;
-
-  //!> contains still the old rightatom id after the index of the bond changed
-  atomId_t oldrightatomId;
-
-  //!> contains still the old molecule id after the index of the bond changed
-  moleculeId_t oldmoleculeId;
-
   //!> reference to InstanceBoard for callbacks on subjectKilled()
   QtObservedInstanceBoard & board;
