Index: /trunk/FACT++/src/DimDescriptionService.h
===================================================================
--- /trunk/FACT++/src/DimDescriptionService.h	(revision 10631)
+++ /trunk/FACT++/src/DimDescriptionService.h	(revision 10632)
@@ -27,14 +27,17 @@
 public:
     template<typename T>
-        DimDescribedService(const char *name, T &val, const char *desc)
-        : DimDescriptionService(name, desc), DimService(name, val)
+    DimDescribedService(const std::string &name, const T &val, const char *desc)
+        : DimDescriptionService(name.c_str(), desc), DimService(name.c_str(), const_cast<T&>(val))
     {
     }
 
-    DimDescribedService(const char *name, const char *val, const char *desc)
-        : DimDescriptionService(name, desc), DimService(name, const_cast<char*>(val)) { }
+    template<typename T>
+    DimDescribedService(const std::string &name, const char *format, const T &val, const char *desc)
+        : DimDescriptionService(name.c_str(), desc), DimService(name.c_str(), format, const_cast<T*>(&val), sizeof(T))
+    {
+    }
 
-    DimDescribedService(const char *name, const char *format, void *structure, int size, const char *desc)
-        : DimDescriptionService(name, desc), DimService(name, format, structure, size)
+    DimDescribedService(const std::string &name, const char *format, const char *desc)
+       : DimDescriptionService(name.c_str(), desc), DimService(name.c_str(), format, (void*)NULL, 0)
     {
         // FIXME: compare number of ; with number of |
