Index: src/Fragmentation/AdaptivityMap.cpp
===================================================================
--- src/Fragmentation/AdaptivityMap.cpp	(revision 34e74fda34e6b1a1242d6d24f88fd932c75726f1)
+++ src/Fragmentation/AdaptivityMap.cpp	(revision 2a0eb0bc95d9c1abbb0bac5df2ab2b1531f888e6)
@@ -211,6 +211,8 @@
       AtomMask.setTrue(No);
       status = true;
-    //} else
+    //} else {
+      //AtomMask.setFalse(No);
       //LOG(2, "Root " << No << " is still above threshold (10^{" << Order <<"}: " << runner->first << ", however MinimumRingSize of " << MinimumRingSize[Walker->getNr()] << " does not allow further adaptive increase.");
+    //}
   }
   return status;
Index: src/Fragmentation/AtomMask.hpp
===================================================================
--- src/Fragmentation/AtomMask.hpp	(revision 34e74fda34e6b1a1242d6d24f88fd932c75726f1)
+++ src/Fragmentation/AtomMask.hpp	(revision 2a0eb0bc95d9c1abbb0bac5df2ab2b1531f888e6)
@@ -18,4 +18,6 @@
 #include "types.hpp"
 
+#include <vector>
+
 /** AtomMask is a filter for a atomic ids. The bit is either true or false.
  *
@@ -23,4 +25,10 @@
 struct AtomMask_t : public Mask_t<atomId_t>
 {
+  typedef std::vector<atomId_t> atoms_t;
+  AtomMask_t(const atoms_t &atoms) {
+    for (atoms_t::const_iterator iter = atoms.begin();
+        iter != atoms.end(); ++iter)
+      setTrue(*iter);
+  }
 
 };
Index: src/Fragmentation/Fragmentation.cpp
===================================================================
--- src/Fragmentation/Fragmentation.cpp	(revision 34e74fda34e6b1a1242d6d24f88fd932c75726f1)
+++ src/Fragmentation/Fragmentation.cpp	(revision 2a0eb0bc95d9c1abbb0bac5df2ab2b1531f888e6)
@@ -91,4 +91,5 @@
  * of vertex indices: Global always means the index in "this" molecule, whereas local refers to the molecule or
  * subgraph in the MoleculeListClass.
+ * \param atomids atoms to fragment, used in AtomMask
  * \param Order up to how many neighbouring bonds a fragment contains in BondOrderScheme::BottumUp scheme
  * \param prefix prefix string for every fragment file name (may include path)
@@ -96,5 +97,5 @@
  * \return 1 - continue, 2 - stop (no fragmentation occured)
  */
-int Fragmentation::FragmentMolecule(int Order, std::string prefix, DepthFirstSearchAnalysis &DFS)
+int Fragmentation::FragmentMolecule(const std::vector<atomId_t> &atomids, int Order, std::string prefix, DepthFirstSearchAnalysis &DFS)
 {
   MoleculeListClass *BondFragments = NULL;
@@ -108,5 +109,5 @@
   Graph TotalGraph;     // graph with all keysets however local numbers
   int TotalNumberOfKeySets = 0;
-  AtomMask_t AtomMask;
+  AtomMask_t AtomMask(atomids);
 
   LOG(0, endl);
@@ -157,5 +158,5 @@
 
   // ===== 4. check globally whether there's something to do actually (first adaptivity check)
-  FragmentationToDo = FragmentationToDo && ParseOrderAtSiteFromFile(prefix);
+  FragmentationToDo = FragmentationToDo && ParseOrderAtSiteFromFile(atomids, prefix);
 
   // =================================== Begin of FRAGMENTATION ===============================
@@ -566,14 +567,15 @@
 /** Parses pairs(Atom::Nr, Atom::AdaptiveOrder) from file and stores in molecule's Atom's.
  * Atoms not present in the file get "0".
+ * \param atomids atoms to fragment, used in AtomMask
  * \param &path path to file ORDERATSITEFILEe
  * \return true - file found and scanned, false - file not found
  * \sa ParseKeySetFile() and CheckAdjacencyFileAgainstMolecule() as this is meant to be used in conjunction with the two
  */
-bool Fragmentation::ParseOrderAtSiteFromFile(std::string &path)
+bool Fragmentation::ParseOrderAtSiteFromFile(const std::vector<atomId_t> &atomids, std::string &path)
 {
   typedef unsigned char order_t;
   typedef std::map<atomId_t, order_t> OrderArray_t;
   OrderArray_t OrderArray;
-  AtomMask_t MaxArray;
+  AtomMask_t MaxArray(atomids);
   bool status;
   int AtomNr, value;
Index: src/Fragmentation/Fragmentation.hpp
===================================================================
--- src/Fragmentation/Fragmentation.hpp	(revision 34e74fda34e6b1a1242d6d24f88fd932c75726f1)
+++ src/Fragmentation/Fragmentation.hpp	(revision 2a0eb0bc95d9c1abbb0bac5df2ab2b1531f888e6)
@@ -36,5 +36,5 @@
   ~Fragmentation();
 
-  int FragmentMolecule(int Order, std::string prefix, DepthFirstSearchAnalysis &DFS);
+  int FragmentMolecule(const std::vector<atomId_t> &atomids, int Order, std::string prefix, DepthFirstSearchAnalysis &DFS);
 
   void setOutputTypes(const std::vector<std::string> &types);
@@ -50,5 +50,5 @@
   bool CheckOrderAtSite(AtomMask_t &AtomMask, Graph *GlobalKeySetList, int Order, std::string path, bool LoopDoneAlready);
   bool StoreOrderAtSiteFile(std::string &path);
-  bool ParseOrderAtSiteFromFile(std::string &path);
+  bool ParseOrderAtSiteFromFile(const std::vector<atomId_t> &atomids, std::string &path);
 
   // storing fragments
