diff --git a/pub/src/manip.cpp b/pub/src/manip.cpp
index 5febd4ef1e9b605a320a3d9032e15b4deb46d74e..23e3029c3dbe5b2d7642d6d913cffc181c61323d 100644
--- a/pub/src/manip.cpp
+++ b/pub/src/manip.cpp
@@ -89,7 +89,7 @@ void NManip::PtsSelect( string del_or_ret )
         fout.lDoc.push_back( "mp" + del_or_ret + " " + pSel );
         fout.VS.clear();
 
-        for (uint j=0; j<fin->VS.size(); j++) {
+        for ( uint j=0; j<fin->VS.size(); j++ ) {
             Sin = &(fin->VS[j]);
             Sout = *Sin;
             Sout.x.clear();
@@ -98,13 +98,16 @@ void NManip::PtsSelect( string del_or_ret )
             pLis.evaluate( 0, Sin->size()-1 );
             for (uint i=0; i<Sin->size(); i++) {
                 if ( sel_del ^ pLis.contains(i) )
-                    Sout.push_xyd(Sin->x[i], Sin->y[i], Sin->dy[i]);
+                    if( Sin->dy.size() )
+                        Sout.push_xyd( Sin->x[i], Sin->y[i], Sin->dy[i] );
+                    else
+                        Sout.push_xy( Sin->x[i], Sin->y[i] );
             }
-            if (Sout.size())
-                fout.VS.push_back(Sout);
+            if ( Sout.size() )
+                fout.VS.push_back( Sout );
         }
-        if (fout.VS.size())
-            NOlm::OloAdd(&fout);
+        if ( fout.VS.size() )
+            NOlm::OloAdd( &fout );
         else 
             throw string( "no data point left" );
     }