Index: src/Actions/FragmentationAction/DepthFirstSearchAction.cpp
===================================================================
--- src/Actions/FragmentationAction/DepthFirstSearchAction.cpp	(revision c6123b29bfd4ed1187d08572debda704f114b2c4)
+++ src/Actions/FragmentationAction/DepthFirstSearchAction.cpp	(revision 99752ac32a6b5b4b90ea6288654d966ac4421175)
@@ -58,5 +58,5 @@
       Subgraphs = Subgraphs->next;
       ListOfAtoms = NULL;
-      Subgraphs->FillBondStructureFromReference(mol, ListOfAtoms, false);  // we want to keep the created ListOfLocalAtoms
+      Subgraphs->Leaf->FillBondStructureFromReference(mol, ListOfAtoms, false);  // we want to keep the created ListOfLocalAtoms
       LocalBackEdgeStack = new std::deque<bond *>; // no need to have it Subgraphs->Leaf->BondCount size
       Subgraphs->Leaf->PickLocalBackEdges(ListOfAtoms, BackEdgeStack, LocalBackEdgeStack);
Index: src/Actions/FragmentationAction/SubgraphDissectionAction.cpp
===================================================================
--- src/Actions/FragmentationAction/SubgraphDissectionAction.cpp	(revision c6123b29bfd4ed1187d08572debda704f114b2c4)
+++ src/Actions/FragmentationAction/SubgraphDissectionAction.cpp	(revision 99752ac32a6b5b4b90ea6288654d966ac4421175)
@@ -124,5 +124,5 @@
       while (MoleculeWalker->next != NULL) {
         ListOfAtoms = NULL;
-        MoleculeWalker->FillBondStructureFromReference(mol, ListOfAtoms, true);  // we want to keep the created ListOfLocalAtoms
+        MoleculeWalker->Leaf->FillBondStructureFromReference(mol, ListOfAtoms, true);  // we want to keep the created ListOfLocalAtoms
         molecules->insert(MoleculeWalker->Leaf);
         MoleculeWalker = MoleculeWalker->next;
@@ -130,5 +130,5 @@
       molecules->insert(MoleculeWalker->Leaf);
       ListOfAtoms = NULL;
-      MoleculeWalker->FillBondStructureFromReference(mol, ListOfAtoms, true);  // we want to keep the created ListOfLocalAtoms
+      MoleculeWalker->Leaf->FillBondStructureFromReference(mol, ListOfAtoms, true);  // we want to keep the created ListOfLocalAtoms
     }
 
Index: src/molecule.hpp
===================================================================
--- src/molecule.hpp	(revision c6123b29bfd4ed1187d08572debda704f114b2c4)
+++ src/molecule.hpp	(revision 99752ac32a6b5b4b90ea6288654d966ac4421175)
@@ -184,5 +184,4 @@
 
   /// Initialising routines in fragmentation
-  void CreateAdjacencyListFromDbondFile(ifstream *output,unsigned int skiplines,int id_offset);
   void OutputBondsList() const;
   void CyclicBondAnalysis() const;
@@ -228,4 +227,5 @@
   // Recognize doubly appearing molecules in a list of them
   int * GetFatherSonAtomicMap(molecule *OtherMolecule);
+  bool FillBondStructureFromReference(const molecule * const reference, atom **&ListOfLocalAtoms, bool FreeList = false);
   bool FillListOfLocalAtoms(atom **&ListOfLocalAtoms, const int GlobalAtomCount);
 
@@ -300,5 +300,4 @@
 
   bool AddLeaf(molecule *ptr, MoleculeLeafClass *Previous);
-  bool FillBondStructureFromReference(const molecule * const reference, atom **&ListOfLocalAtoms, bool FreeList = false);
   bool FillRootStackForSubgraphs(KeyStack *&RootStack, bool *AtomMask, int &FragmentCounter);
   bool AssignKeySetsToFragment(molecule *reference, Graph *KeySetList, atom ***&ListOfLocalAtoms, Graph **&FragmentList, int &FragmentCounter, bool FreeList = false);
Index: src/molecule_fragmentation.cpp
===================================================================
--- src/molecule_fragmentation.cpp	(revision c6123b29bfd4ed1187d08572debda704f114b2c4)
+++ src/molecule_fragmentation.cpp	(revision 99752ac32a6b5b4b90ea6288654d966ac4421175)
@@ -685,5 +685,5 @@
     // fill the bond structure of the individually stored subgraphs
     ListOfAtoms = NULL;
-    MolecularWalker->FillBondStructureFromReference(this, ListOfAtoms, false);  // we want to keep the created ListOfLocalAtoms
+    MolecularWalker->Leaf->FillBondStructureFromReference(this, ListOfAtoms, false);  // we want to keep the created ListOfLocalAtoms
     DoLog(0) && (Log() << Verbose(0) << "Analysing the cycles of subgraph " << MolecularWalker->Leaf << " with nr. " << FragmentCounter << "." << endl);
     LocalBackEdgeStack = new std::deque<bond *>; // (MolecularWalker->Leaf->BondCount);
Index: src/molecule_graph.cpp
===================================================================
--- src/molecule_graph.cpp	(revision c6123b29bfd4ed1187d08572debda704f114b2c4)
+++ src/molecule_graph.cpp	(revision 99752ac32a6b5b4b90ea6288654d966ac4421175)
@@ -72,4 +72,59 @@
 
 /************************************* Functions for class molecule *********************************/
+
+/** Fills the bond structure of this chain list subgraphs that are derived from a complete \a *reference molecule.
+ * Calls this routine in each MoleculeLeafClass::next subgraph if it's not NULL.
+ * \param *reference reference molecule with the bond structure to be copied
+ * \param **&ListOfLocalAtoms Lookup table for this subgraph and index of each atom in \a *reference, may be NULL on start, then it is filled
+ * \param FreeList true - ***ListOfLocalAtoms is free'd before return, false - it is not
+ * \return true - success, false - failure
+ */
+bool molecule::FillBondStructureFromReference(const molecule * const reference, atom **&ListOfLocalAtoms, bool FreeList)
+{
+  atom *OtherWalker = NULL;
+  atom *Father = NULL;
+  bool status = true;
+  int AtomNo;
+
+  DoLog(1) && (Log() << Verbose(1) << "Begin of FillBondStructureFromReference." << endl);
+  // fill ListOfLocalAtoms if NULL was given
+  if (!FillListOfLocalAtoms(ListOfLocalAtoms, reference->getAtomCount())) {
+    DoLog(1) && (Log() << Verbose(1) << "Filling of ListOfLocalAtoms failed." << endl);
+    return false;
+  }
+
+  if (status) {
+    DoLog(1) && (Log() << Verbose(1) << "Creating adjacency list for molecule " << getName() << "." << endl);
+    // remove every bond from the list
+    for_each(begin(), end(),
+        boost::bind(&BondedParticle::ClearBondsAtStep,_1,WorldTime::getTime()));
+
+
+    for(molecule::const_iterator iter = begin(); iter != end(); ++iter) {
+      Father = (*iter)->GetTrueFather();
+      AtomNo = Father->getNr(); // global id of the current walker
+      const BondList& ListOfBonds = Father->getListOfBonds();
+      for (BondList::const_iterator Runner = ListOfBonds.begin();
+          Runner != ListOfBonds.end();
+          ++Runner) {
+        OtherWalker = ListOfLocalAtoms[(*Runner)->GetOtherAtom((*iter)->GetTrueFather())->getNr()]; // local copy of current bond partner of walker
+        if (OtherWalker != NULL) {
+          if (OtherWalker->getNr() > (*iter)->getNr())
+            AddBond((*iter), OtherWalker, (*Runner)->BondDegree);
+        } else {
+          DoLog(1) && (Log() << Verbose(1) << "OtherWalker = ListOfLocalAtoms[" << (*Runner)->GetOtherAtom((*iter)->GetTrueFather())->getNr() << "] is NULL!" << endl);
+          status = false;
+        }
+      }
+    }
+  }
+
+  if ((FreeList) && (ListOfLocalAtoms != NULL)) {
+    // free the index lookup list
+    delete[](ListOfLocalAtoms);
+  }
+  DoLog(1) && (Log() << Verbose(1) << "End of FillBondStructureFromReference." << endl);
+  return status;
+};
 
 /** Checks for presence of bonds within atom list.
Index: src/moleculelist.cpp
===================================================================
--- src/moleculelist.cpp	(revision c6123b29bfd4ed1187d08572debda704f114b2c4)
+++ src/moleculelist.cpp	(revision 99752ac32a6b5b4b90ea6288654d966ac4421175)
@@ -777,60 +777,4 @@
 };
 
-/** Fills the bond structure of this chain list subgraphs that are derived from a complete \a *reference molecule.
- * Calls this routine in each MoleculeLeafClass::next subgraph if it's not NULL.
- * \param *out output stream for debugging
- * \param *reference reference molecule with the bond structure to be copied
- * \param **&ListOfLocalAtoms Lookup table for this subgraph and index of each atom in \a *reference, may be NULL on start, then it is filled
- * \param FreeList true - ***ListOfLocalAtoms is free'd before return, false - it is not
- * \return true - success, false - failure
- */
-bool MoleculeLeafClass::FillBondStructureFromReference(const molecule * const reference, atom **&ListOfLocalAtoms, bool FreeList)
-{
-  atom *OtherWalker = NULL;
-  atom *Father = NULL;
-  bool status = true;
-  int AtomNo;
-
-  DoLog(1) && (Log() << Verbose(1) << "Begin of FillBondStructureFromReference." << endl);
-  // fill ListOfLocalAtoms if NULL was given
-  if (!Leaf->FillListOfLocalAtoms(ListOfLocalAtoms, reference->getAtomCount())) {
-    DoLog(1) && (Log() << Verbose(1) << "Filling of ListOfLocalAtoms failed." << endl);
-    return false;
-  }
-
-  if (status) {
-    DoLog(1) && (Log() << Verbose(1) << "Creating adjacency list for subgraph " << Leaf << "." << endl);
-    // remove every bond from the list
-    for_each(Leaf->begin(), Leaf->end(),
-        boost::bind(&BondedParticle::ClearBondsAtStep,_1,WorldTime::getTime()));
-
-
-    for(molecule::const_iterator iter = Leaf->begin(); iter != Leaf->end(); ++iter) {
-      Father = (*iter)->GetTrueFather();
-      AtomNo = Father->getNr(); // global id of the current walker
-      const BondList& ListOfBonds = Father->getListOfBonds();
-      for (BondList::const_iterator Runner = ListOfBonds.begin();
-          Runner != ListOfBonds.end();
-          ++Runner) {
-        OtherWalker = ListOfLocalAtoms[(*Runner)->GetOtherAtom((*iter)->GetTrueFather())->getNr()]; // local copy of current bond partner of walker
-        if (OtherWalker != NULL) {
-          if (OtherWalker->getNr() > (*iter)->getNr())
-            Leaf->AddBond((*iter), OtherWalker, (*Runner)->BondDegree);
-        } else {
-          DoLog(1) && (Log() << Verbose(1) << "OtherWalker = ListOfLocalAtoms[" << (*Runner)->GetOtherAtom((*iter)->GetTrueFather())->getNr() << "] is NULL!" << endl);
-          status = false;
-        }
-      }
-    }
-  }
-
-  if ((FreeList) && (ListOfLocalAtoms != NULL)) {
-    // free the index lookup list
-    delete[](ListOfLocalAtoms);
-  }
-  DoLog(1) && (Log() << Verbose(1) << "End of FillBondStructureFromReference." << endl);
-  return status;
-};
-
 /** Fills the root stack for sites to be used as root in fragmentation depending on order or adaptivity criteria
  * Again, as in \sa FillBondStructureFromReference steps recursively through each Leaf in this chain list of molecule's.
