Index: trunk/SophyaExt/FitsIOServer/fitslocalmap.cc
===================================================================
--- trunk/SophyaExt/FitsIOServer/fitslocalmap.cc	(revision 1193)
+++ trunk/SophyaExt/FitsIOServer/fitslocalmap.cc	(revision 1194)
@@ -160,13 +160,12 @@
   dvl["Content"]= "LocalMap";
   // On ecrit les dataBlocks 
-  char** Noms = new char*[1];   
-  Noms[0]= new char[15];
-  strncpy(Noms[0],dvl.GetS("Content").c_str(),15);
-  char extname[15] = "SIMULATION";
+  vector<string> Noms;   
+  Noms.push_back(dvl.GetS("Content"));
+  string extname("SIMULATION");
 
-  char Type[2];
-  if (typeid(T) == typeid(r_8) ) Type[0]='D';
+  string Type;
+  if (typeid(T) == typeid(r_8) ) Type+='D';
   else 
-    if (typeid(T) == typeid(r_4) )  Type[0]='E';
+    if (typeid(T) == typeid(r_4) )  Type+='E';
     else
       {
@@ -174,9 +173,6 @@
 	throw IOExc("FITS_LocalMap:: unknown type");
       }
-  Type[1]='\0'; 
   vector<int> dummy;
   os.makeHeaderBntblOnFits(Type, Noms, dobj_->NbPixels(), 1, dvl, extname, dummy);
-  delete [] Noms[0];
-  delete [] Noms;
   os.putColToFits(0,  dobj_->NbPixels(), dobj_->DataBlock().Data()); 
 
Index: trunk/SophyaExt/FitsIOServer/fitsntuple.cc
===================================================================
--- trunk/SophyaExt/FitsIOServer/fitsntuple.cc	(revision 1193)
+++ trunk/SophyaExt/FitsIOServer/fitsntuple.cc	(revision 1194)
@@ -160,26 +160,17 @@
   DVList dvl= dobj_->Info();
   // extension name
-  char* extname = "NTuple_Binary_tbl"; 
+  string extname("NTuple_Binary_tbl"); 
 
-  char** Noms = new char*[ncols];   
+  vector<string> Noms(ncols);   
   int k;
   for (k=0; k< ncols; k++)
     {
-      Noms[k]= new char[LONNOM1];
-      strncpy(Noms[k],dobj_->NomIndex(k),LONNOM1);
+      Noms[k]= dobj_->NomIndex(k);
     }
 
-  char* type= new char[ncols+1];
-  for (k=0;k<ncols+1;k++) type[k]='E';
-  type[ncols]='\0';
+  string type(ncols, 'E');
   vector<int> dummy;
 
   os.makeHeaderBntblOnFits(type,Noms, nentries, ncols, dvl, extname, dummy);
-   for (k=0; k< ncols; k++)
-    {
-      delete [] Noms[k];
-    }
-   delete [] Noms;
-   delete [] type;
    float* column =  new float[nentries];
    for (k=0; k<ncols;k++)
Index: trunk/SophyaExt/FitsIOServer/fitsspherehealpix.cc
===================================================================
--- trunk/SophyaExt/FitsIOServer/fitsspherehealpix.cc	(revision 1193)
+++ trunk/SophyaExt/FitsIOServer/fitsspherehealpix.cc	(revision 1194)
@@ -89,5 +89,4 @@
   int nSide= dobj_->SizeIndex();
   dvl["NSIDE"]= (int_4) nSide;
-  cout << " je n'ecris plus nside " << endl;
   dvl.SetComment("NSIDE","Resolution parameter for HEALPIX" );
 
@@ -100,13 +99,12 @@
    
   // On ecrit les dataBlocks 
-  char** Noms = new char*[1];   
-  Noms[0]= new char[15];
-  strncpy(Noms[0],dvl.GetS("Content").c_str(),15);
-  char extname[15] = "SIMULATION";
-
-  char Type[2];
-  if (typeid(T) == typeid(r_8) ) Type[0]='D';
+  vector<string> Noms;   
+  Noms.push_back(dvl.GetS("Content"));
+  string extname("SIMULATION");
+
+  string Type;
+  if (typeid(T) == typeid(r_8) ) Type+='D';
   else 
-    if (typeid(T) == typeid(r_4) )  Type[0]='E';
+    if (typeid(T) == typeid(r_4) )  Type+='E';
     else
       {
@@ -114,9 +112,6 @@
 	throw IOExc("FITS_SphereHEALPix:: unknown type");
       }
-  Type[1]='\0'; 
   vector<int> dummy;
   os.makeHeaderBntblOnFits(Type, Noms, nPix, 1, dvl, extname, dummy);
-  delete [] Noms[0];
-  delete [] Noms;
   os.putColToFits(0,  nPix, dobj_->pixels_.Data()); 
 } 
Index: trunk/SophyaExt/FitsIOServer/fitsxntuple.cc
===================================================================
--- trunk/SophyaExt/FitsIOServer/fitsxntuple.cc	(revision 1193)
+++ trunk/SophyaExt/FitsIOServer/fitsxntuple.cc	(revision 1194)
@@ -201,44 +201,33 @@
   DVList dvl= dobj_->Info();
   // extension name
-  char* extname = "XNTuple_Binary_tbl"; 
-  char** Noms = new char*[ncols];   
+  string extname("XNTuple_Binary_tbl"); 
+  vector<string> Noms(ncols);   
   int k;
   for (k=0; k< ncols; k++)
     {
-      Noms[k]= new char[LONNOM+1];
-      strncpy(Noms[k],dobj_->NomIndex(k).c_str(),LONNOM);
-      Noms[LONNOM] = '\0';
-    }
-   char* types=new char[ncols+1];
-  int compt=0;
+      Noms[k] = dobj_->NomIndex(k) ;
+    }
+  string types;
   for (k=0; k<dobj_->NDVar();k++)
     {
-      types[compt++]='D'; 
+      types+='D';
     }
   for (k=0; k<dobj_->NFVar();k++)
     {
-      types[compt++]='E'; 
+      types+='E';
     }
   for (k=0; k<dobj_->NIVar();k++)
     {
-      types[compt++]='I'; 
+      types+='I';
     }
   for (k=0; k<dobj_->NSVar();k++)
     {
-      types[compt++]='A'; 
+      types+='A';
     }            
-  types[ncols]='\0';
   vector<int> StringSizes(dobj_->NSVar());
   for (k=0; k< StringSizes.size(); k++) StringSizes[k]=dobj_->mStrSz;
   os.makeHeaderBntblOnFits(types, Noms, nrows, ncols, dvl, extname,StringSizes); 
-   for (k=0; k< ncols; k++)
-    {
-      delete [] Noms[k];
-    }
-   delete [] Noms;
-   delete [] types;
-
    
-  compt=0;  
+  int compt=0; 
    if (dobj_->NDVar() > 0) 
      {
@@ -296,4 +285,5 @@
 	      ccolumn[j] = NULL;
 	    }
+
 	}
       delete [] ccolumn;
