Index: /trunk/FACT++/src/datalogger.cc
===================================================================
--- /trunk/FACT++/src/datalogger.cc	(revision 12888)
+++ /trunk/FACT++/src/datalogger.cc	(revision 12889)
@@ -2093,13 +2093,10 @@
     const unsigned int n = 8 + 3 + 2*maxCharLength + 1 + 8; //+1 for trailling character
 
-    vector<unsigned char> realBuffer;
-    realBuffer.resize(n);
-    unsigned char* fitsBuffer = &realBuffer[0];
-    memset(fitsBuffer, 0, n);
-
-    char* startOfExtension = reinterpret_cast<char*>(fitsBuffer);
-    char* startOfURI       = reinterpret_cast<char*>(&fitsBuffer[8]);
-    char* startOfLocation  = reinterpret_cast<char*>(&fitsBuffer[8 + 3]);
-    char* startOfName      = reinterpret_cast<char*>(&fitsBuffer[8+3+maxCharLength]);
+    vector<char> realBuffer(n);
+
+    char *startOfExtension = realBuffer.data();
+    char *startOfURI       = realBuffer.data()+8;
+    char *startOfLocation  = realBuffer.data()+8+3;
+    char *startOfName      = realBuffer.data()+8+3+maxCharLength;
  //   char* startOfMemVer    = reinterpret_cast<char*>(&fitsBuffer[8+3+2*maxCharLength]);
  //   char* startOfMemPos    = reinterpret_cast<char*>(&fitsBuffer[8+3+2*maxCharLength+1]);
@@ -2107,6 +2104,7 @@
     strcpy(startOfExtension, "BINTABLE");
     strcpy(startOfURI,       "URL");
-    fitsBuffer[8+3+2*maxCharLength+3] = 1;
-    fitsBuffer[8+3+2*maxCharLength+7] = 1;
+
+    realBuffer[8+3+2*maxCharLength+3] = 1;
+    realBuffer[8+3+2*maxCharLength+7] = 1;
 
     int i=1;
@@ -2114,6 +2112,8 @@
         for (vector<string>::const_iterator jt=it->second.begin(); jt != it->second.end(); jt++, i++)
         {
+            memset(startOfLocation, 0, 2*maxCharLength+1+8;
+
             strcpy(startOfLocation, it->first.c_str());
-            strcpy(startOfName, jt->c_str());
+            strcpy(startOfName,     jt->c_str());
 
             if (fDebugIsOn)
@@ -2125,5 +2125,5 @@
 
             int status = 0;
-            fits_write_tblbytes(groupFile->fitsPointer(), i, 1, 8+3+2*maxCharLength +8, fitsBuffer, &status);
+            fits_write_tblbytes(groupFile->fitsPointer(), i, 1, 8+3+2*maxCharLength +8, realBuffer.data(), &status);
             if (status)
             {
