diff --git a/src/io/serialization_local_parametrization_base.h b/src/io/serialization_local_parametrization_base.h
new file mode 100644
index 0000000000000000000000000000000000000000..921577bbfe1397441cf28696a2c609ac2ea510ba
--- /dev/null
+++ b/src/io/serialization_local_parametrization_base.h
@@ -0,0 +1,116 @@
+#ifndef WOLF_IO_SERIALIZATION_LOCAL_PARAMETRIZATION_BASE_H_
+#define WOLF_IO_SERIALIZATION_LOCAL_PARAMETRIZATION_BASE_H_
+
+#include "../local_parametrization_base.h"
+
+#include <boost/serialization/serialization.hpp>
+
+#include <boost/serialization/split_free.hpp>
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/assume_abstract.hpp>
+
+BOOST_SERIALIZATION_ASSUME_ABSTRACT(wolf::LocalParametrizationBase)
+
+namespace boost {
+namespace serialization {
+
+// Since classes deriving from LocalParametrizationBase
+// have default constructor calling the non-default
+// LocalParametrizationBase constructor with pre-defined
+// arguments, there is nothing to save here.
+// The only necessary thing to do is to register this
+// abstract class and define an empty serialize function.
+template<class Archive>
+inline void serialize(
+    Archive &/*ar*/,
+    wolf::LocalParametrizationBase &/*lpb*/,
+    const unsigned int /*file_version*/)
+{
+  //
+}
+
+// Example of what might need to be the serialization
+// in case LocalParametrizationBase was not pure abstract.
+
+/*
+template<class Archive>
+inline void save(
+    Archive &ar,
+    const wolf::LocalParametrizationBase &lpb,
+    const unsigned int  file_version )
+{
+  unsigned int global_size = lpb.getGlobalSize();
+  unsigned int local_size  = lpb.getLocalSize();
+
+  ar << BOOST_SERIALIZATION_NVP(global_size);
+  ar << BOOST_SERIALIZATION_NVP(local_size);
+}
+
+template<class Archive>
+inline void load(
+    Archive &ar,
+    wolf::LocalParametrizationBase &lpb,
+    const unsigned int  file_version )
+{
+  unsigned int global_size(0);
+  unsigned int local_size(0);
+
+  ar >> BOOST_SERIALIZATION_NVP(global_size);
+  ar >> BOOST_SERIALIZATION_NVP(local_size);
+
+  // 'placement new'
+  // 1/ it assumes memory already allocated
+  // 2/ an instance of LocalParametrizationBase is constructed at
+  //    the memory location
+  ::new(&lpb)wolf::LocalParametrizationBase(global_size, local_size);
+}
+
+// split non-intrusive serialization function member into separate
+// non intrusive save/load member functions
+template<class Archive>
+inline void serialize(
+    Archive &ar,
+    wolf::LocalParametrizationBase &lpb,
+    const unsigned int file_version)
+{
+  boost::serialization::split_free(ar, lpb, file_version);
+}
+
+// The two functions below allows for serialization of pointers
+// (dynamic allocation)
+
+template<class Archive>
+inline void save_construct_data(
+    Archive &ar,
+    const wolf::LocalParametrizationBase *lpb,
+    const unsigned int file_version)
+{
+  unsigned int global_size = lpb->getGlobalSize();
+  unsigned int local_size  = lpb->getLocalSize();
+
+  ar << BOOST_SERIALIZATION_NVP(global_size);
+  ar << BOOST_SERIALIZATION_NVP(local_size);
+}
+
+template<class Archive>
+inline void load_construct_data(
+    Archive &ar,
+    wolf::LocalParametrizationBase *lpb,
+    const unsigned int file_version)
+{
+  unsigned int global_size(0);
+  unsigned int local_size(0);
+
+  ar >> BOOST_SERIALIZATION_NVP(global_size);
+  ar >> BOOST_SERIALIZATION_NVP(local_size);
+
+  ::new(lpb)wolf::LocalParametrizationBase(global_size, local_size);
+}
+
+*/
+
+} //namespace serialization
+} //namespace boost
+
+#endif /* WOLF_IO_SERIALIZATION_LOCAL_PARAMETRIZATION_BASE_H_ */
diff --git a/src/io/serialization_local_parametrization_homogeneous.h b/src/io/serialization_local_parametrization_homogeneous.h
new file mode 100644
index 0000000000000000000000000000000000000000..bf72d8f15f2b554fdc190673bae6cdbaee6b083c
--- /dev/null
+++ b/src/io/serialization_local_parametrization_homogeneous.h
@@ -0,0 +1,29 @@
+#ifndef WOLF_IO_SERIALIZATION_LOCAL_PARAMETRIZATION_HOMOGENEOUS_H_
+#define WOLF_IO_SERIALIZATION_LOCAL_PARAMETRIZATION_HOMOGENEOUS_H_
+
+#include "../local_parametrization_homogeneous.h"
+
+#include "serialization_local_parametrization_base.h"
+
+#include <boost/serialization/export.hpp>
+
+BOOST_CLASS_EXPORT_GUID(wolf::LocalParametrizationHomogeneous,
+                        "wolf_LocalParametrizationHomogeneous")
+
+namespace boost {
+namespace serialization {
+
+template<class Archive>
+inline void serialize(
+    Archive &ar,
+    wolf::LocalParametrizationHomogeneous &lp,
+    const unsigned int /*file_version*/)
+{
+  ar & boost::serialization::make_nvp("LocalParametrizationBase",
+         boost::serialization::base_object<wolf::LocalParametrizationBase>(lp));
+}
+
+} //namespace serialization
+} //namespace boost
+
+#endif /* WOLF_IO_SERIALIZATION_LOCAL_PARAMETRIZATION_HOMOGENEOUS_H_ */
diff --git a/src/io/serialization_local_parametrization_quaternion.h b/src/io/serialization_local_parametrization_quaternion.h
new file mode 100644
index 0000000000000000000000000000000000000000..b2f721a65830f7727433c07b6da8e5538ef2f63b
--- /dev/null
+++ b/src/io/serialization_local_parametrization_quaternion.h
@@ -0,0 +1,32 @@
+#ifndef WOLF_IO_SERIALIZATION_LOCAL_PARAMETRIZATION_QUATERNION_H_
+#define WOLF_IO_SERIALIZATION_LOCAL_PARAMETRIZATION_QUATERNION_H_
+
+#include "../local_parametrization_quaternion.h"
+
+#include "serialization_local_parametrization_base.h"
+
+#include <boost/serialization/export.hpp>
+
+BOOST_CLASS_EXPORT_GUID(wolf::LocalParametrizationQuaternion<wolf::DQ_LOCAL>,
+                        "wolf_LocalParametrizationQuaternion_DQ_LOCAL")
+
+BOOST_CLASS_EXPORT_GUID(wolf::LocalParametrizationQuaternion<wolf::DQ_GLOBAL>,
+                        "wolf_LocalParametrizationQuaternion_DQ_GLOBAL")
+
+namespace boost {
+namespace serialization {
+
+template<class Archive, unsigned int DeltaReference>
+inline void serialize(
+    Archive &ar,
+    wolf::LocalParametrizationQuaternion<DeltaReference> &lp,
+    const unsigned int /*file_version*/)
+{
+  ar & boost::serialization::make_nvp("LocalParametrizationBase",
+         boost::serialization::base_object<wolf::LocalParametrizationBase>(lp));
+}
+
+} //namespace serialization
+} //namespace boost
+
+#endif /* WOLF_IO_SERIALIZATION_LOCAL_PARAMETRIZATION_QUATERNION_H_ */