Index: src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.cpp
===================================================================
--- src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.cpp	(revision 5c78e3afa08a9e0a73d348dd405a8249cdf7fbdd)
+++ src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.cpp	(revision d76d652c439e3216a6d56d8fb74dd0b915b8ca4a)
@@ -295,6 +295,6 @@
     // obtain fragment
     std::map<IndexSet::ptr, std::pair< MPQCDataFragmentMap_t, MPQCDataFragmentMap_t> >::const_iterator fragmentiter
-        = longrangeresults.Result_perIndexSet_Fragment.find(index);
-    ASSERT( fragmentiter != longrangeresults.Result_perIndexSet_Fragment.end(),
+        = shortrangeresults.Result_perIndexSet_Fragment.find(index);
+    ASSERT( fragmentiter != shortrangeresults.Result_perIndexSet_Fragment.end(),
         "appendToHomologyFile() - cannot find index "+toString(*index)
         +" in FragmentResults.");
@@ -357,9 +357,12 @@
     for (HomologyContainer::container_t::const_iterator iter =
         homology_container.begin(); iter != homology_container.end(); ++iter) {
-      LOG(2, "DEBUG: graph " << iter->first
+      std::stringstream output;
+      output << "DEBUG: graph " << iter->first
           << " has Fragment " << iter->second.fragment
-          << ", associated energy " << iter->second.energy
-          << ", and sampled grid integral " << iter->second.charge_distribution.integral()
-          << ".");
+          << ", associated energy " << iter->second.energy;
+      if (iter->second.containsGrids)
+        output  << ", and sampled grid integral " << iter->second.charge_distribution.integral();
+      output << ".";
+      LOG(2, output.str());
     }
   }
@@ -610,5 +613,5 @@
   if (DoLongrange) {
     if ( World::getInstance().getAllAtoms().size() == 0) {
-      ELOG(1, "Please load the full molecule into the world before starting this action.");
+      ELOG(1, "Please load the full molecule intostd::map<JobId_t, VMGData> longrangeData the world before starting this action.");
       return Action::failure;
     }
@@ -640,8 +643,22 @@
     // append all keysets to homology file
     appendToHomologies(shortrangeresults, longrangeresults, params.DoStoreGrids.get());
+  } else {
+    // append all keysets to homology file with short-range info only (without grids)
+    std::map<JobId_t, VMGData> longrangeData;
+    FragmentationLongRangeResults longrangeresults(
+        shortrangedata,longrangeData,keysets, forcekeysets);
+    appendToHomologies(shortrangeresults, longrangeresults, false);
   }
 #else
   if (DoLongrange)
     ELOG(2, "File contains long-range information but long-range analysis capability not compiled in.");
+
+  // append all keysets to homology file with short-range info only (without grids)
+  {
+    std::map<JobId_t, VMGData> longrangeData;
+    FragmentationLongRangeResults longrangeresults(
+        shortrangedata,longrangeData,keysets, forcekeysets);
+    appendToHomologies(shortrangeresults, longrangeresults, false);
+  }
 #endif
 
Index: src/Fragmentation/Summation/Containers/FragmentationChargeDensity.cpp
===================================================================
--- src/Fragmentation/Summation/Containers/FragmentationChargeDensity.cpp	(revision 5c78e3afa08a9e0a73d348dd405a8249cdf7fbdd)
+++ src/Fragmentation/Summation/Containers/FragmentationChargeDensity.cpp	(revision d76d652c439e3216a6d56d8fb74dd0b915b8ca4a)
@@ -84,7 +84,4 @@
       fragmentData, MatrixNrLookup, container, subsetmap,
       Result_Grid_fused, Result_perIndexSet_Grid);
-  OrthogonalSumUpPerLevel<MPQCDataFragmentMap_t, MPQCData, MPQCDataFragmentVector_t>(
-      fragmentData, MatrixNrLookup, container, subsetmap,
-      Result_Fragment_fused, Result_perIndexSet_Fragment);
 }
 
@@ -100,7 +97,2 @@
   return full_sample;
 }
-
-const Fragment &FragmentationChargeDensity::getFragment()
-{
-  return boost::fusion::at_key<MPQCDataFused::fragment>(Result_Fragment_fused.back());
-}
Index: src/Fragmentation/Summation/Containers/FragmentationChargeDensity.hpp
===================================================================
--- src/Fragmentation/Summation/Containers/FragmentationChargeDensity.hpp	(revision 5c78e3afa08a9e0a73d348dd405a8249cdf7fbdd)
+++ src/Fragmentation/Summation/Containers/FragmentationChargeDensity.hpp	(revision d76d652c439e3216a6d56d8fb74dd0b915b8ca4a)
@@ -48,15 +48,9 @@
   std::vector<SamplingGrid> getFullSampledGrid();
 
-  const Fragment &getFragment();
-
   //!> results per level of summed up sampled grid charge
   std::vector<MPQCDataGridMap_t> Result_Grid_fused;
-  //!> results per level of summed up fragment positions and charges
-  std::vector<MPQCDataFragmentMap_t> Result_Fragment_fused;
 
   //!> results per IndexSet of summed up sampled grid charge
   std::map<IndexSet::ptr, std::pair<MPQCDataGridMap_t, MPQCDataGridMap_t> > Result_perIndexSet_Grid;
-  //!> results per IndexSet of summed up fragment positions and charges
-  std::map<IndexSet::ptr, std::pair<MPQCDataFragmentMap_t, MPQCDataFragmentMap_t> > Result_perIndexSet_Fragment;
 
 private:
Index: src/Fragmentation/Summation/Containers/FragmentationLongRangeResults.cpp
===================================================================
--- src/Fragmentation/Summation/Containers/FragmentationLongRangeResults.cpp	(revision 5c78e3afa08a9e0a73d348dd405a8249cdf7fbdd)
+++ src/Fragmentation/Summation/Containers/FragmentationLongRangeResults.cpp	(revision d76d652c439e3216a6d56d8fb74dd0b915b8ca4a)
@@ -114,7 +114,4 @@
         fragmentData, MPQCMatrixNrLookup, container, subsetmap,
         Result_Grid_fused, Result_perIndexSet_Grid);
-    OrthogonalSumUpPerLevel<MPQCDataFragmentMap_t, MPQCData, MPQCDataFragmentVector_t>(
-        fragmentData, MPQCMatrixNrLookup, container, subsetmap,
-        Result_Fragment_fused, Result_perIndexSet_Fragment);
 
     // multiply each short-range potential with the respective charge
Index: src/Fragmentation/Summation/Containers/FragmentationLongRangeResults.hpp
===================================================================
--- src/Fragmentation/Summation/Containers/FragmentationLongRangeResults.hpp	(revision 5c78e3afa08a9e0a73d348dd405a8249cdf7fbdd)
+++ src/Fragmentation/Summation/Containers/FragmentationLongRangeResults.hpp	(revision d76d652c439e3216a6d56d8fb74dd0b915b8ca4a)
@@ -104,6 +104,4 @@
   //!> results per level of summed up sampled grid charge
   std::vector<MPQCDataGridMap_t> Result_Grid_fused;
-  //!> results per level of summed up fragment positions and charges
-  std::vector<MPQCDataFragmentMap_t> Result_Fragment_fused;
   //!> results per level of summed up long range potential grids and energy
   std::vector<VMGDataMap_t> Result_LongRange_fused;
@@ -113,6 +111,4 @@
   //!> results per IndexSet of summed up sampled grid charge
   std::map<IndexSet::ptr, std::pair<MPQCDataGridMap_t,MPQCDataGridMap_t> > Result_perIndexSet_Grid;
-  //!> results per IndexSet of summed up fragment positions and charges
-  std::map<IndexSet::ptr, std::pair<MPQCDataFragmentMap_t,MPQCDataFragmentMap_t> > Result_perIndexSet_Fragment;
   //!> results per IndexSet of summed up long range potential grids and energy
   std::map<IndexSet::ptr, std::pair<VMGDataMap_t, VMGDataMap_t> > Result_perIndexSet_LongRange;
Index: src/Fragmentation/Summation/Containers/FragmentationShortRangeResults.cpp
===================================================================
--- src/Fragmentation/Summation/Containers/FragmentationShortRangeResults.cpp	(revision 5c78e3afa08a9e0a73d348dd405a8249cdf7fbdd)
+++ src/Fragmentation/Summation/Containers/FragmentationShortRangeResults.cpp	(revision d76d652c439e3216a6d56d8fb74dd0b915b8ca4a)
@@ -100,4 +100,7 @@
         fragmentData, MPQCMatrixNrLookup, container, subsetmap,
         Result_Energy_fused, Result_perIndexSet_Energy);
+    OrthogonalSumUpPerLevel<MPQCDataFragmentMap_t, MPQCData, MPQCDataFragmentVector_t>(
+        fragmentData, MPQCMatrixNrLookup, container, subsetmap,
+        Result_Fragment_fused, Result_perIndexSet_Fragment);
     SumUpPerLevel<MPQCDataTimeMap_t, MPQCData, MPQCDataTimeVector_t>(
         fragmentData, MPQCMatrixNrLookup, container, subsetmap,
Index: src/Fragmentation/Summation/Containers/FragmentationShortRangeResults.hpp
===================================================================
--- src/Fragmentation/Summation/Containers/FragmentationShortRangeResults.hpp	(revision 5c78e3afa08a9e0a73d348dd405a8249cdf7fbdd)
+++ src/Fragmentation/Summation/Containers/FragmentationShortRangeResults.hpp	(revision d76d652c439e3216a6d56d8fb74dd0b915b8ca4a)
@@ -97,4 +97,6 @@
   //!> results per level of summed up energy
   std::vector<MPQCDataEnergyMap_t> Result_Energy_fused;
+  //!> results per level of summed up fragment positions and charges
+  std::vector<MPQCDataFragmentMap_t> Result_Fragment_fused;
   //!> results per level of summed up times
   std::vector<MPQCDataTimeMap_t> Result_Time_fused;
@@ -104,4 +106,6 @@
   //!> results per IndexSet of summed up energy
   std::map<IndexSet::ptr, std::pair<MPQCDataEnergyMap_t,MPQCDataEnergyMap_t> > Result_perIndexSet_Energy;
+  //!> results per IndexSet of summed up fragment positions and charges
+  std::map<IndexSet::ptr, std::pair<MPQCDataFragmentMap_t,MPQCDataFragmentMap_t> > Result_perIndexSet_Fragment;
   //!> results per IndexSet of summed up times
   std::map<IndexSet::ptr, std::pair<MPQCDataTimeMap_t,MPQCDataTimeMap_t> > Result_perIndexSet_Time;
