Index: src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.cpp
===================================================================
--- src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.cpp	(revision a3427f795a607e84365d342681c78b46570d042e)
+++ src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.cpp	(revision 55e1bc203062d6ce285fbba9c783e28963932633)
@@ -283,10 +283,30 @@
 Action::state_ptr FragmentationAnalyseFragmentationResultsAction::performCall() {
 
-  // TODO: Get data and keysets from ResultsContainer
+  // if file is given, parse from file into resultscontainer
   FragmentationResultContainer& container = FragmentationResultContainer::getInstance();
+  if (!params.resultsfile.get().empty()) {
+    boost::filesystem::path resultsfile = params.resultsfile.get();
+    if (boost::filesystem::exists(resultsfile)) {
+      LOG(1, "INFO: Parsing results from " << resultsfile.string() << ".");
+      std::ifstream returnstream(resultsfile.string().c_str());
+      if (returnstream.good()) {
+        boost::archive::text_iarchive ia(returnstream);
+        ia >> container;
+      }
+    } else {
+      ELOG(1, "Given file" << resultsfile.string() << " does not exist.");
+    }
+  }
+
+  // get data and keysets from ResultsContainer
   const std::map<JobId_t, MPQCData> &shortrangedata = container.getShortRangeResults();
   const KeySetsContainer &keysets = container.getKeySets();
   const KeySetsContainer &forcekeysets = container.getForceKeySets();
   const bool DoLongrange = container.areFullRangeResultsPresent();
+
+  if (keysets.KeySets.empty()) {
+    ELOG(2, "There are no results in the container.");
+    return Action::failure;
+  }
 
   FragmentationShortRangeResults shortrangeresults(shortrangedata, keysets, forcekeysets);
Index: src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.def
===================================================================
--- src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.def	(revision a3427f795a607e84365d342681c78b46570d042e)
+++ src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.def	(revision 55e1bc203062d6ce285fbba9c783e28963932633)
@@ -10,14 +10,16 @@
 
 #include "Parameters/Validators/DummyValidator.hpp"
+#include "Parameters/Validators/Specific/FilePresentValidator.hpp"
 
 // i.e. there is an integer with variable name Z that can be found in
 // ValueStorage by the token "Z" -> first column: int, Z, "Z"
 // "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
-#define paramtypes (boost::filesystem::path)
-#define paramtokens ("homology-file")
-#define paramdescriptions ("path to file containing homology containerto append to")
-#define paramdefaults (PARAM_DEFAULT(""))
-#define paramreferences (homology_file)
+#define paramtypes (boost::filesystem::path)(boost::filesystem::path)
+#define paramtokens ("homology-file")("fragment-resultfile")
+#define paramdescriptions ("path to file containing homology container to append to")("parse fragment results from the given file")
+#define paramdefaults (PARAM_DEFAULT(""))(PARAM_DEFAULT(""))
+#define paramreferences (homology_file)(resultsfile)
 #define paramvalids \
+(DummyValidator< boost::filesystem::path >()) \
 (DummyValidator< boost::filesystem::path >())
 
Index: src/Actions/FragmentationAction/FragmentationAutomationAction.cpp
===================================================================
--- src/Actions/FragmentationAction/FragmentationAutomationAction.cpp	(revision a3427f795a607e84365d342681c78b46570d042e)
+++ src/Actions/FragmentationAction/FragmentationAutomationAction.cpp	(revision 55e1bc203062d6ce285fbba9c783e28963932633)
@@ -40,6 +40,6 @@
 
 //// include headers that implement a archive in simple text format
-//#include <boost/archive/text_oarchive.hpp>
-//#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
 
 //
@@ -200,4 +200,16 @@
   FragmentJobQueue::getInstance().clear();
 
+  // if file is given, advise results container to store to file
+  if (!params.resultsfile.get().empty()) {
+    boost::filesystem::path resultsfile = params.resultsfile.get();
+    std::ofstream returnstream(resultsfile.string().c_str());
+    if (returnstream.good()) {
+      boost::archive::text_oarchive oa(returnstream);
+      oa << container;
+    }
+    Exitflag += (int)(!returnstream.good());
+    returnstream.close();
+  }
+
   return (Exitflag == 0) ? Action::success : Action::failure;
 }
Index: src/Actions/FragmentationAction/FragmentationAutomationAction.def
===================================================================
--- src/Actions/FragmentationAction/FragmentationAutomationAction.def	(revision a3427f795a607e84365d342681c78b46570d042e)
+++ src/Actions/FragmentationAction/FragmentationAutomationAction.def	(revision 55e1bc203062d6ce285fbba9c783e28963932633)
@@ -18,9 +18,9 @@
 // ValueStorage by the token "Z" -> first column: int, Z, "Z"
 // "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
-#define paramtypes (std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)
-#define paramtokens ("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")
-#define paramdescriptions ("hostname of server")("controller port of server")("executable to launch on clients")("resolution of multigrid")("number of cells used in smearing out core charge")("interpolation degree for getting the nuclei potential from the grid")("whether to calculate long-range contributions")
-#define paramdefaults (PARAM_DEFAULT("127.0.0.1"))(NOPARAM_DEFAULT)(PARAM_DEFAULT("mpqc"))(PARAM_DEFAULT(5))(PARAM_DEFAULT(3))(PARAM_DEFAULT(3))(PARAM_DEFAULT("0"))
-#define paramreferences (host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)
+#define paramtypes (std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)(boost::filesystem::path)
+#define paramtokens ("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")("fragment-resultfile")
+#define paramdescriptions ("hostname of server")("controller port of server")("executable to launch on clients")("resolution of multigrid")("number of cells used in smearing out core charge")("interpolation degree for getting the nuclei potential from the grid")("whether to calculate long-range contributions")("parse fragment results from the given file")
+#define paramdefaults (PARAM_DEFAULT("127.0.0.1"))(NOPARAM_DEFAULT)(PARAM_DEFAULT("mpqc"))(PARAM_DEFAULT(5))(PARAM_DEFAULT(3))(PARAM_DEFAULT(3))(PARAM_DEFAULT("0"))(PARAM_DEFAULT(""))
+#define paramreferences (host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)(resultsfile)
 #define paramvalids \
 (DummyValidator< std::string >()) \
@@ -30,5 +30,6 @@
 (RangeValidator< unsigned int >(1, 20)) \
 (RangeValidator< unsigned int >(1, 10)) \
-(DummyValidator< bool >())
+(DummyValidator< bool >()) \
+(DummyValidator< boost::filesystem::path >())
 
 #undef statetypes
Index: src/Fragmentation/Summation/Containers/FragmentationResultContainer.hpp
===================================================================
--- src/Fragmentation/Summation/Containers/FragmentationResultContainer.hpp	(revision a3427f795a607e84365d342681c78b46570d042e)
+++ src/Fragmentation/Summation/Containers/FragmentationResultContainer.hpp	(revision 55e1bc203062d6ce285fbba9c783e28963932633)
@@ -14,6 +14,8 @@
 #endif
 
+#include <boost/serialization/access.hpp>
 #include "CodePatterns/Singleton.hpp"
 
+#include <boost/filesystem/path.hpp>
 #include <map>
 
@@ -34,6 +36,6 @@
  *
  * The idea is that we can play around with results without having to recalculate
- * results in between. Hence, we serialize the FragmentResult into this
- * container which can also be filled from file.
+ * results in between. Hence, we place results into this container which we may
+ * full serialize.
  */
 class FragmentationResultContainer: public Singleton<FragmentationResultContainer>
@@ -128,4 +130,18 @@
   std::map<JobId_t, VMGData> longrangedata;
 #endif
+
+  friend class boost::serialization::access;
+  // serialization
+  template <typename Archive>
+  void serialize(Archive& ar, const unsigned int version)
+  {
+    ar & ResultsType;
+    ar & keysets;
+    ar & forcekeysets;
+    ar & shortrangedata;
+#ifdef HAVE_VMG
+    ar & longrangedata;
+#endif
+  }
 };
 
