diff --git a/pub/src/curve.cpp b/pub/src/curve.cpp
index 17606f170315163193d82bd43d9c0bddddec79d8..8a5f3b89471cea58ac91a7aa81a93feaf9154af7 100644
--- a/pub/src/curve.cpp
+++ b/pub/src/curve.cpp
@@ -1082,17 +1082,13 @@ void NCurveFile::IntegralProperty()
                 if ( nz>=2 &&
                      (j+1)<fin->nJ() && 
                      fin->VC(j+1)->z[nz-2]!=fin->VC(j)->z[nz-2] ) {
-                    cout << "DEB j="<<j<<", S: "<<S->z[0]<<"\n";
                     fout->V.push_back(S);
                     newoutspec = true;
                 }
             }
             if (savable) {
                 fout->V.push_back(S);
-                cout << "DEB ultimo, S: "<<S->z[0]<<"\n";
                 NOlm::OloAdd( fout );
-                for (uint j=0; j<fout->nJ(); j++)
-                    cout << "DEB post j="<<j<<", Sz="<<fout->VS(j)->z[0]<<"\n";
             }
         }
         fiter.reset();
diff --git a/pub/src/manip.cpp b/pub/src/manip.cpp
index f0dc2f6ae85ac984d932d85b81aa9d3424b232f5..95053350f3dcd2dcb988c9547e330db0e6b11828 100644
--- a/pub/src/manip.cpp
+++ b/pub/src/manip.cpp
@@ -1017,8 +1017,6 @@ void NManip::FilMerge( const string& opts )
             if (fin->ZCo[i] != fout->ZCo[i])
                 throw "different z"+strg(i)+" coordinate";
     }
-    if ( add_zk )
-        fout->ZCo.push_back( CCoord("number-of-input-file", "") );
 
     // check RPar, and prepare move to z if they differ:
     fiter.reset();
@@ -1035,15 +1033,17 @@ void NManip::FilMerge( const string& opts )
             if (fin->RPar[i].val != RPar[i].val )
                 RParDiff[i] = true;
     }
+    vector<CCoord>::iterator zinsert = fout->ZCo.begin();
     for ( uint i=0; i<nR; ++i ) {
         if( RParDiff[i] )
-            fout->ZCo.push_back( RPar[i].Co );
+            fout->ZCo.insert( zinsert++, RPar[i].Co );
         else
             fout->RPar.push_back( RPar[i] );
     }
-    if ( !add_zk && !fout->ZCo.size() ) {
-        // fallback because there must be at least one z coordinate
-        fout->ZCo.push_back( CCoord("number-of-input-file", "") );
+    if ( add_zk || !fout->ZCo.size() ) {
+        // there must be at least one z coordinate
+        fout->ZCo.insert( fout->ZCo.begin(),
+                          CCoord("number-of-input-file", "") );
         add_zk = true;
     }
 
@@ -1097,11 +1097,12 @@ void NManip::FilMerge( const string& opts )
     while ( (fin = fiter()) ) {
         for ( uint j=0; j<fin->nJ(); j++ ) {
             PZentry eout( fin->new_zentry(j) );
-            if ( add_zk )
-                eout->z.push_back( fiter.iteration() );
+            vector<double>::iterator zinsert=eout->z.begin();
             for ( uint i=0; i<nR; ++i )
                 if( RParDiff[i] )
-                    eout->z.push_back( fin->RPar[i].val );
+                    eout->z.insert( zinsert++, fin->RPar[i].val );
+            if ( add_zk )
+                eout->z.insert( eout->z.begin(), fiter.iteration() );
             fout->V.push_back( eout );
         }
     }