diff --git a/pub/src/opr.cpp b/pub/src/opr.cpp
index 56709a3e222ca144b12f7bc63783a6b072b79c07..521967479391b6027161aa1fb3a336e3b0fc1117 100644
--- a/pub/src/opr.cpp
+++ b/pub/src/opr.cpp
@@ -251,7 +251,6 @@ void NOperate::NewDY()
     CEle *ein;
     COlo *fout;
     vector<double> vout;
-    double dout;
     uint n;
     while( (ein=iter()) ){
         uint k = iter.SelNo();
@@ -263,45 +262,18 @@ void NOperate::NewDY()
             else
                 fout = (COlo*) new COlc( *((COlc*) ein->P()) );
         }
-        fout->lDoc.push_back( "o" + lref.ref_info() + " " + expr);
+        fout->lDoc.push_back( "ody+ " + expr);
         
-        if      (lref.var==CRef::_X) 
-            T->coord(&(fout->xco), k);
-        else if (lref.var==CRef::_Y) 
-            T->coord(&(fout->yco), k);
-        else if (lref.var==CRef::_Z) {
-            if( lref.num>= fout->ZCo.size() ){
-                delete fout;
-                throw string( "no such z coordinate to operate onto" );
-            }
-            T->coord(&(fout->ZCo[lref.num]), k);
-        }
-
         for( uint j=0; j<ein->nScan(); j++ ){
             
-            if (lref.pointwise()) {
-                if( !ein->isD() ){
-                    delete fout;
-                    throw string( "no pointwise operation on curve" );
-                }
-                n = ((COld*)(ein->D()))->VS[j].size();
-                vout.resize(n);
-                T->tree_vec_val( &vout, k, j );
-                if (lref.var==CRef::_X)
-                    ((COld*)fout)->VS[j].x = vout;
-                else
-                    ((COld*)fout)->VS[j].y = vout;
-            } else if (lref.var==CRef::_Z) {
-                T->tree_point_val( &dout, k, j );
-                if( ein->isD() )
-                    ((COld*)fout)->VS[j].z[lref.num] = dout;
-                else
-                    ((COlc*)fout)->VC[j].z[lref.num] = dout;
-            } else {
+            if( !ein->isD() ){
                 delete fout;
-                throw string( "PROGRAM ERROR/ invalid oxy" );
+                throw string( "no pointwise operation on curve" );
             }
-			
+            n = ((COld*)(ein->D()))->VS[j].size();
+            vout.resize(n);
+            T->tree_vec_val( &vout, k, j );
+            ((COld*)fout)->VS[j].dy = vout;
         }
         if( !(NOlm::overwrite) ){
             NOlm::OloAdd( fout );