diff --git a/pub/src/dualplot.cpp b/pub/src/dualplot.cpp
index ff917704fc8712e3191fe7cea95ac5d1e6dde001..6c57f25780d4765ceb9e1bef2dff4e65fd6b0fe1 100644
--- a/pub/src/dualplot.cpp
+++ b/pub/src/dualplot.cpp
@@ -359,23 +359,25 @@ void CPlot::ps_ticktack( const vector<double>& Tacks, int ntpt,
 {
     uint i, ntack;
     ntack = Tacks.size();
-    ps_accu.push_back( "  [\n" );
-    if (A->logflag && ( Tacks[0]<1e-3 || Tacks[ntack-1]>1e3 )) {
-        for (i=0; i<ntack; i++) {
-            snprintf( outlin, mLin,
-                      "   %9.6f {(10)(%d)sp()} %%{(%g)}\n", 
-                      A->pc(Tacks[i]), (int)(log10(Tacks[i])),
-                      (float) Tacks[i]);
-            ps_accu.push_back( outlin );
-        }
-    } else {
-        for (i=0; i<ntack; i++) {
-            snprintf( outlin, mLin, "   %9.6f {(%g)}\n", 
-                      A->pc(Tacks[i]), (float) Tacks[i]);
-            ps_accu.push_back( outlin );
+    if (ntack > 0 ) {
+        ps_accu.push_back( "  [\n" );
+        if (A->logflag && ( Tacks[0]<1e-3 || Tacks[ntack-1]>1e3 )) {
+            for (i=0; i<ntack; i++) {
+                snprintf( outlin, mLin,
+                          "   %9.6f {(10)(%d)sp()} %%{(%g)}\n", 
+                          A->pc(Tacks[i]), (int)(log10(Tacks[i])),
+                          (float) Tacks[i]);
+                ps_accu.push_back( outlin );
+            }
+        } else {
+            for (i=0; i<ntack; i++) {
+                snprintf( outlin, mLin, "   %9.6f {(%g)}\n", 
+                          A->pc(Tacks[i]), (float) Tacks[i]);
+                ps_accu.push_back( outlin );
+            }
         }
+        ps_accu.push_back( "  ] SetTacVec\n" );
     }
-    ps_accu.push_back( "  ] SetTacVec\n" );
     snprintf( outlin, mLin, "  %g %g %d %d SetTicVec%s\n", 
               A->pc(ticklim[0]), A->pc(ticklim[1]), ntack+2, ntpt,
               (A->logflag? "Log" : "Lin"));