diff --git a/include/util/threadsafesingleton.h b/include/util/threadsafesingleton.h
new file mode 100644
index 000000000..349c00d37
--- /dev/null
+++ b/include/util/threadsafesingleton.h
@@ -0,0 +1,39 @@
+/*
+ * threadsafesingleton.h
+ *
+ * Created on: Aug 7, 2015
+ * Author: f4exb
+ */
+
+#ifndef INCLUDE_UTIL_THREADSAFESINGLETON_H_
+#define INCLUDE_UTIL_THREADSAFESINGLETON_H_
+
+//! Template class used to make from a class a singleton.
+/** S is the type of the singleton object to instantiate.
+
This class permits to gather all singleton code in the same place
+ and not to pollute object interface with singleton methods.
+
Accessing to the instance of S is made through ThreadSafeSingleton::instance()
+
Note : The class using this adapter should have constructor and
+ destructor protected and copy constructor and operator= private.
+
Besides it should declare the class ThreadSafeSingleton friend in order
+ this class can make the construction.
+*/
+
+template class ThreadSafeSingleton
+{
+public:
+ static S& instance() { return *_pInstance; }
+
+protected:
+ ThreadSafeSingleton() {}
+ ~ThreadSafeSingleton() { delete _pInstance; }
+ static S* _pInstance;
+
+private:
+ ThreadSafeSingleton(const ThreadSafeSingleton&) {}
+ ThreadSafeSingleton& operator = (const ThreadSafeSingleton&) {return *this;}
+};
+
+template S *ThreadSafeSingleton::_pInstance = new S;
+
+#endif /* INCLUDE_UTIL_THREADSAFESINGLETON_H_ */