Index: /trunk/SophyaExt/FitsIOServer/fitsfile.cc
===================================================================
--- /trunk/SophyaExt/FitsIOServer/fitsfile.cc	(revision 1081)
+++ /trunk/SophyaExt/FitsIOServer/fitsfile.cc	(revision 1082)
@@ -903,5 +903,5 @@
 	case 'I' :
 	  {
-	    int ival=(*it).second.elval.mtv.iv;
+	    int ival=(*it).second.elval.iv;
 	    strncpy(comment,(*it).second.elcomm.c_str(),FLEN_COMMENT );
 	    fits_write_key(fptr_,TINT,keyname,&ival,comment,&status);
@@ -910,5 +910,5 @@
 	case 'D' :
 	  {
-	    double dval=(*it).second.elval.mtv.dv;
+	    double dval=(*it).second.elval.dv;
 	    strncpy(comment,(*it).second.elcomm.c_str(),FLEN_COMMENT );
 	    fits_write_key(fptr_,TDOUBLE,keyname,&dval,comment,&status);
@@ -918,5 +918,5 @@
 	  {
 	    char strval[128];
-	    strncpy(strval,(*it).second.elval.mtv.strv,127);
+	    strncpy(strval,(*it).second.elval.strv->c_str(),127);
 	    strncpy(comment,(*it).second.elcomm.c_str(),FLEN_COMMENT );
 	    fits_write_key(fptr_,TSTRING,keyname,&strval,comment,&status);
Index: /trunk/SophyaExt/FitsIOServer/fitsioserver.cc
===================================================================
--- /trunk/SophyaExt/FitsIOServer/fitsioserver.cc	(revision 1081)
+++ /trunk/SophyaExt/FitsIOServer/fitsioserver.cc	(revision 1082)
@@ -996,5 +996,5 @@
 	case 'I' :
 	  {
-	    int ival=(*it).second.elval.mtv.iv;
+	    int ival=(*it).second.elval.iv;
 	    strcpy(comment,"I entier");
 	    fits_write_key(fptr,TINT,keyname,&ival,comment,&status);
@@ -1003,5 +1003,5 @@
 	case 'D' :
 	  {
-	    double dval=(*it).second.elval.mtv.dv;
+	    double dval=(*it).second.elval.dv;
 	    strcpy(comment,"D double");
 	    fits_write_key(fptr,TDOUBLE,keyname,&dval,comment,&status);
@@ -1011,5 +1011,5 @@
 	  {
 	    char strval[128];
-	    strncpy(strval,(*it).second.elval.mtv.strv,127);
+	    strncpy(strval,(*it).second.elval.strv->c_str(),127);
 	    strcpy(comment,"S character string");
 	    fits_write_key(fptr,TSTRING,keyname,&strval,comment,&status);
@@ -1407,5 +1407,5 @@
 	{
 	case TINT :
-	  ival=(*it).second.elval.mtv.iv;
+	  ival=(*it).second.elval.iv;
 	  strcpy(comment,"I entier");
 //DBG          cerr << " Writing I " << (string)keyname << " = " << ival << endl;
@@ -1413,5 +1413,5 @@
 	  break;
 	case TDOUBLE :
-	  dval=(*it).second.elval.mtv.dv;
+	  dval=(*it).second.elval.dv;
 	  strcpy(comment,"D double");
 //DBG          cerr << " Writing D " << (string)keyname << " = " << dval << endl;
@@ -1419,5 +1419,5 @@
 	  break;
 	case TSTRING :
-	  strncpy(strval, (*it).second.elval.mtv.strv, 128); strval[127] = '\0';
+	  strncpy(strval, (*it).second.elval.strv->c_str(), 128); strval[127] = '\0';
 	  strcpy(comment,"S character string");
 //DBG          cerr << " Writing S " << (string)keyname << " = " << (string)strval << endl;
@@ -1598,5 +1598,5 @@
 	{
 	case TINT :
-	  ival=(*it).second.elval.mtv.iv;
+	  ival=(*it).second.elval.iv;
 	  strcpy(comment," ");
 //DBG          cerr << " Writing I " << (string)keyname << " = " << ival << endl;
@@ -1604,5 +1604,5 @@
 	  break;
 	case TDOUBLE :
-	  dval=(*it).second.elval.mtv.dv;
+	  dval=(*it).second.elval.dv;
 	  strcpy(comment," ");
 //DBG          cerr << " Writing D " << (string)keyname << " = " << dval << endl;
@@ -1610,5 +1610,5 @@
 	  break;
 	case TSTRING :
-	  strncpy(strval, (*it).second.elval.mtv.strv, 128); strval[127] = '\0';
+	  strncpy(strval, (*it).second.elval.strv->c_str(), 128); strval[127] = '\0';
 	  strcpy(comment," ");
 //DBG          cerr << " Writing S " << (string)keyname << " = " << (string)strval << endl;
Index: /trunk/SophyaProg/Tests/tnt.cc
===================================================================
--- /trunk/SophyaProg/Tests/tnt.cc	(revision 1081)
+++ /trunk/SophyaProg/Tests/tnt.cc	(revision 1082)
@@ -96,4 +96,5 @@
 dvl.SetD("DV1-0.2", 0.2);
 dvl.SetD("DV2-4.5", 4.5);
+dvl.SetZ("ZV", complex<r_8>(2.0,-1.44));
 
 dvl.SetI("IVV3-783", 783);
@@ -113,6 +114,8 @@
 float f = dvl("DVV3");
 int i = dvl("IVV3-783");
+complex<r_8> z = dvl("ZV");
 
 printf("\n \n Essai1 (IVV3 DVV3 DV2= ) %d  %.20g  %g \n", i, f, (float)d);
+printf("\n \n Essai ZV= (%.2g  %g I) \n", z.real(), z.imag());
 cout << "Test Comment/IntegerValue: " << dvl.GetComment("IntegerValue") << endl;
 cout << "Test Comment/DVV3: " << dvl.GetComment("DVV3") << endl;
@@ -135,5 +138,5 @@
  double df1 = (double)( dvlr["DVV3"] );
  double df2 = (double)3.141592652141592652 - df1;
- cout << " Test Precision : Pi-Pi= " << df1  << "DVV3= " << df1 << endl;
+ cout << " Test Precision : Pi-Pi= " << df2  << "DVV3= " << df1 << endl;
 
  cout << dvlr;
