Index: src/Fragmentation/SetValues/Fragment.cpp
===================================================================
--- src/Fragmentation/SetValues/Fragment.cpp	(revision 7f85250f2873734c9d5ffecf9d9db2e664aa3334)
+++ src/Fragmentation/SetValues/Fragment.cpp	(revision a576ebf5f3584942d7d48537934a4df3bed212ae)
@@ -33,4 +33,9 @@
 #include <config.h>
 #endif
+
+// include headers that implement a archive in simple text format
+// otherwise BOOST_CLASS_EXPORT_IMPLEMENT has no effect
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
 
 #include "CodePatterns/MemDebug.hpp"
@@ -189,2 +194,5 @@
 }
 
+
+// we need to explicitly instantiate the serialization functions
+BOOST_CLASS_EXPORT_IMPLEMENT(Fragment)
Index: src/Fragmentation/SetValues/Fragment.hpp
===================================================================
--- src/Fragmentation/SetValues/Fragment.hpp	(revision 7f85250f2873734c9d5ffecf9d9db2e664aa3334)
+++ src/Fragmentation/SetValues/Fragment.hpp	(revision a576ebf5f3584942d7d48537934a4df3bed212ae)
@@ -14,4 +14,8 @@
 #include <config.h>
 #endif
+
+#include <boost/serialization/export.hpp>
+#include <boost/serialization/vector.hpp>
+#include <boost/serialization/utility.hpp>
 
 #include <iosfwd>
@@ -133,5 +137,17 @@
 private:
   nuclei_t nuclei;
+
+private:
+  friend class boost::serialization::access;
+  // serialization
+  template <typename Archive>
+  void serialize(Archive& ar, const unsigned int version)
+  {
+    ar & nuclei;
+  }
 };
+
+// we need to give this class a unique key for serialization
+BOOST_CLASS_EXPORT_KEY(Fragment)
 
 /** Equality operator for two nuclei.
Index: src/Fragmentation/SetValues/unittests/FragmentUnitTest.cpp
===================================================================
--- src/Fragmentation/SetValues/unittests/FragmentUnitTest.cpp	(revision 7f85250f2873734c9d5ffecf9d9db2e664aa3334)
+++ src/Fragmentation/SetValues/unittests/FragmentUnitTest.cpp	(revision a576ebf5f3584942d7d48537934a4df3bed212ae)
@@ -39,4 +39,8 @@
 #include <cppunit/ui/text/TestRunner.h>
 
+// include headers that implement a archive in simple text format
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+
 #include "FragmentUnitTest.hpp"
 
@@ -46,4 +50,6 @@
 #include <boost/assign.hpp>
 #include <boost/foreach.hpp>
+
+#include <sstream>
 
 #include "CodePatterns/Assert.hpp"
@@ -480,2 +486,24 @@
   }
 }
+
+
+
+/** UnitTest for serialization
+ */
+void FragmentTest::serializeTest()
+{
+  // serialize
+  std::stringstream outputstream;
+  boost::archive::text_oarchive oa(outputstream);
+  oa << fragment;
+
+  // deserialize
+  Fragment *samefragment = NULL;
+  std::stringstream returnstream(outputstream.str());
+  boost::archive::text_iarchive ia(returnstream);
+  ia >> samefragment;
+
+  CPPUNIT_ASSERT( *fragment == *samefragment );
+
+  delete samefragment;
+}
Index: src/Fragmentation/SetValues/unittests/FragmentUnitTest.hpp
===================================================================
--- src/Fragmentation/SetValues/unittests/FragmentUnitTest.hpp	(revision 7f85250f2873734c9d5ffecf9d9db2e664aa3334)
+++ src/Fragmentation/SetValues/unittests/FragmentUnitTest.hpp	(revision a576ebf5f3584942d7d48537934a4df3bed212ae)
@@ -34,4 +34,5 @@
     CPPUNIT_TEST ( operatorMinusEqual_NonOverlapping_Test );
     CPPUNIT_TEST ( operatorMinusEqual_Test );
+    CPPUNIT_TEST ( serializeTest );
     CPPUNIT_TEST_SUITE_END();
 
@@ -49,4 +50,5 @@
       void operatorMinusEqual_NonOverlapping_Test();
       void operatorMinusEqual_Test();
+      void serializeTest();
 
 private:
Index: src/Fragmentation/SetValues/unittests/Makefile.am
===================================================================
--- src/Fragmentation/SetValues/unittests/Makefile.am	(revision 7f85250f2873734c9d5ffecf9d9db2e664aa3334)
+++ src/Fragmentation/SetValues/unittests/Makefile.am	(revision a576ebf5f3584942d7d48537934a4df3bed212ae)
@@ -29,5 +29,8 @@
 	../Fragmentation/SetValues/unittests/FragmentUnitTest.cpp \
 	../Fragmentation/SetValues/unittests/FragmentUnitTest.hpp
-FragmentUnitTest_LDADD = ${FRAGMENTATIONSETVALUESLIBS}
+FragmentUnitTest_LDADD = \
+	${FRAGMENTATIONSETVALUESLIBS} \
+	$(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS)
+	
 
 HistogramUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
