Index: src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_atom.cpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_atom.cpp	(revision 29ea65c708b2778dfed09f35f53078f9ae87ceed)
+++ src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_atom.cpp	(revision 88c8ec20f4a97f9685638eda1c07bca7fe46bd4e)
@@ -178,5 +178,5 @@
           ASSERT(!_atom->getListOfBonds().empty(),
               "GLMoleculeObject_atom::recieveNotification() - received BondsAdded but ListOfBonds is empty.");
-          const bond * _bond = *(_atom->getListOfBonds().rbegin());
+          const bond::ptr _bond = *(_atom->getListOfBonds().rbegin());
           const GLMoleculeObject_bond::SideOfBond side = (_bond->leftatom == _atom) ?
               GLMoleculeObject_bond::left : GLMoleculeObject_bond::right;
Index: src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_atom.hpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_atom.hpp	(revision 29ea65c708b2778dfed09f35f53078f9ae87ceed)
+++ src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_atom.hpp	(revision 88c8ec20f4a97f9685638eda1c07bca7fe46bd4e)
@@ -18,8 +18,8 @@
 #include "CodePatterns/Observer/Observer.hpp"
 
+#include "Bond/bond.hpp"
 #include "GLMoleculeObject_bond.hpp"
 
 class atom;
-class bond;
 
 class GLMoleculeObject_atom : public GLMoleculeObject, public Observer
@@ -40,5 +40,5 @@
 signals:
   void clicked(atomId_t);
-  void BondsInserted(const bond *_bond, const GLMoleculeObject_bond::SideOfBond side);
+  void BondsInserted(const bond::ptr _bond, const GLMoleculeObject_bond::SideOfBond side);
   void indexChanged(GLMoleculeObject_atom *ob, int oldId, int newId);
 
Index: src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_bond.cpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_bond.cpp	(revision 29ea65c708b2778dfed09f35f53078f9ae87ceed)
+++ src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_bond.cpp	(revision 88c8ec20f4a97f9685638eda1c07bca7fe46bd4e)
@@ -54,5 +54,5 @@
 #include "LinearAlgebra/Vector.hpp"
 
-GLMoleculeObject_bond::GLMoleculeObject_bond(QGLSceneNode *mesh[], QObject *parent, const bond *bondref, const enum SideOfBond side) :
+GLMoleculeObject_bond::GLMoleculeObject_bond(QGLSceneNode *mesh[], QObject *parent, const bond::ptr bondref, const enum SideOfBond side) :
   GLMoleculeObject(mesh, parent),
   Observer(std::string("GLMoleculeObject_bond")
Index: src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_bond.hpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_bond.hpp	(revision 29ea65c708b2778dfed09f35f53078f9ae87ceed)
+++ src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_bond.hpp	(revision 88c8ec20f4a97f9685638eda1c07bca7fe46bd4e)
@@ -18,7 +18,7 @@
 #include "CodePatterns/Observer/Observer.hpp"
 
+#include "Bond/bond.hpp"
 #include "types.hpp"
 
-class bond;
 
 class GLMoleculeObject_bond : public GLMoleculeObject, public Observer
@@ -28,5 +28,5 @@
   enum SideOfBond { left, right };
 
-  GLMoleculeObject_bond(QGLSceneNode *mesh[], QObject *parent, const bond *bondref, const enum SideOfBond side);
+  GLMoleculeObject_bond(QGLSceneNode *mesh[], QObject *parent, const bond::ptr bondref, const enum SideOfBond side);
   virtual ~GLMoleculeObject_bond();
 
@@ -41,5 +41,5 @@
 private:
   void resetPosition();
-  const bond *_bond;
+  bond::ptr _bond;
   const enum SideOfBond BondSide;
 };
Index: src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp	(revision 29ea65c708b2778dfed09f35f53078f9ae87ceed)
+++ src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp	(revision 88c8ec20f4a97f9685638eda1c07bca7fe46bd4e)
@@ -127,5 +127,5 @@
             bonditer != bondlist.end();
             ++bonditer) {
-          const bond *_bond = *bonditer;
+          const bond::ptr _bond = *bonditer;
           const GLMoleculeObject_bond::SideOfBond side = (_bond->leftatom == *atomiter) ?
               GLMoleculeObject_bond::left : GLMoleculeObject_bond::right;
@@ -154,5 +154,5 @@
   connect (atomObject, SIGNAL(hoverChanged(GLMoleculeObject *)), this, SLOT(hoverChangedSignalled(GLMoleculeObject *)));
   connect (atomObject, SIGNAL(selectionChanged()), this, SIGNAL(changed()));
-  connect (atomObject, SIGNAL(BondsInserted(const bond *, const GLMoleculeObject_bond::SideOfBond)), this, SLOT(bondInserted(const bond *, const GLMoleculeObject_bond::SideOfBond)));
+  connect (atomObject, SIGNAL(BondsInserted(const bond::ptr , const GLMoleculeObject_bond::SideOfBond)), this, SLOT(bondInserted(const bond::ptr , const GLMoleculeObject_bond::SideOfBond)));
   connect (atomObject, SIGNAL(indexChanged(GLMoleculeObject_atom*, int, int)), this, SLOT(changeAtomId(GLMoleculeObject_atom*, int, int)));
   //bondsChanged(_atom);
@@ -244,5 +244,5 @@
  * @param side which side of the bond (left or right)
  */
-void GLWorldScene::bondInserted(const bond *_bond, const enum GLMoleculeObject_bond::SideOfBond side)
+void GLWorldScene::bondInserted(const bond::ptr _bond, const enum GLMoleculeObject_bond::SideOfBond side)
 {
   LOG(3, "INFO: GLWorldScene::bondInserted() - Adding bond "+toString(*_bond)+".");
@@ -263,5 +263,5 @@
       "GLWorldScene::bondAdded() - same left-sided bond "+toString(*_bond)+" added again.");
 #endif
-  GLMoleculeObject_bond *bondObject =
+  GLMoleculeObject_bond * bondObject =
       new GLMoleculeObject_bond(meshCylinder, this, _bond, side);
   connect (
@@ -288,5 +288,5 @@
         "GLWorldScene::bondRemoved() - bond "+toString(leftnr)+"-"
         +toString(rightnr)+" not on display.");
-    //GLMoleculeObject_bond *bondObject = leftiter->second;
+    //GLMoleculeObject_bond::ptr bondObject = leftiter->second;
     BondsinSceneMap.erase(leftiter);
     //delete bondObject; // is done by signal from bond itself
Index: src/UIElements/Views/Qt4/Qt3D/GLWorldScene.hpp
===================================================================
--- src/UIElements/Views/Qt4/Qt3D/GLWorldScene.hpp	(revision 29ea65c708b2778dfed09f35f53078f9ae87ceed)
+++ src/UIElements/Views/Qt4/Qt3D/GLWorldScene.hpp	(revision 88c8ec20f4a97f9685638eda1c07bca7fe46bd4e)
@@ -20,4 +20,5 @@
 #include <iosfwd>
 
+#include "Bond/bond.hpp"
 #include "GLMoleculeObject_bond.hpp"
 #include "GLMoleculeObject_molecule.hpp"
@@ -81,5 +82,5 @@
   void moleculeRemoved(const molecule *_molecule);
   void worldSelectionChanged();
-  void bondInserted(const bond *_bond, const GLMoleculeObject_bond::SideOfBond side);
+  void bondInserted(const bond::ptr _bond, const GLMoleculeObject_bond::SideOfBond side);
   void bondRemoved(const atomId_t leftnr, const atomId_t rightnr);
   void setSelectionModeAtom();
