-#include <stdio.h>
-#include <ctype.h> // For isspace
-#include <string.h> // CLEANME: could this be only string ? Related to Win32 ?
+#include "gdcmVR.h"
+#include "gdcmTS.h"
+#include "gdcmDictSet.h"
+#include "gdcmDicomDirElement.h"
+
+namespace gdcm
+{
+// Those global string that are return by reference everywhere in gdcm code
+// used to be in gdcmCommon.h but due to a 'bug' in gcc/MacOSX
+// you cannot have static initialization in a multithreaded environment
+// since there is a lazy construction everything got skrew up somehow
+// Therefore the actual initiliazation is done in a cxx file (avoid
+// duplicated symbol), and an extern is used in gdcmCommon.h
+const std::string GDCM_UNKNOWN = "gdcm::Unknown";
+const std::string GDCM_UNFOUND = "gdcm::Unfound";
+const std::string GDCM_BINLOADED = "gdcm::Binary data loaded";
+const std::string GDCM_NOTLOADED = "gdcm::NotLoaded";
+const std::string GDCM_UNREAD = "gdcm::UnRead";