Index: /trunk/Ohana/src/kapa2/src/DrawFrame.c
===================================================================
--- /trunk/Ohana/src/kapa2/src/DrawFrame.c	(revision 15541)
+++ /trunk/Ohana/src/kapa2/src/DrawFrame.c	(revision 15542)
@@ -1,3 +1,4 @@
 # include "Ximage.h"
+# define MIN_RANGE 1e-10
 # define DrawLine(X,Y,DX,DY) (XDrawLine (graphic->display, graphic->window, graphic->gc, (int)(X), (int)(Y), (int)(X+DX), (int)(Y+DY)))
   
@@ -28,5 +29,12 @@
     
     if (graph[0].axis[i].areticks) {
+      if (isnan(graph[0].axis[i].min) || isinf(graph[0].axis[i].min)) continue;
+      if (isnan(graph[0].axis[i].max) || isinf(graph[0].axis[i].max)) continue;
+
       range = graph[0].axis[i].max - graph[0].axis[i].min;
+      if (fabs(range) < MIN_RANGE) {
+	range = (range < 0) ? -MIN_RANGE : +MIN_RANGE;
+      }
+
       AxisTickScale (&graph[0].axis[i], &major, &minor);
 
@@ -111,6 +119,9 @@
 
   range = axis[0].max - axis[0].min;
+  if (fabs(range) < MIN_RANGE) {
+    range = (range < 0) ? -MIN_RANGE : +MIN_RANGE;
+  }
 
-  lrange = log10(MAX(fabs(range), 1e-30));
+  lrange = log10(MAX(fabs(range), MIN_RANGE));
   mantis = modf (lrange, &factor);
   if (mantis < 0.0) {
@@ -119,8 +130,8 @@
   }
   
-  power = pow(10.0, factor);
+  power = MAX(pow(10.0, factor), MIN_RANGE);
   fmantis = pow(10.0, mantis);
-  *major = 0.5 * power;
-  *minor = 0.1 * power;
+  *major = MAX(0.5 * power, MIN_RANGE);
+  *minor = MAX(0.1 * power, MIN_RANGE);
   
   if ((fmantis >= 1.0) && (fmantis <  1.999)) {
Index: /trunk/Ohana/src/kapa2/src/PSFrame.c
===================================================================
--- /trunk/Ohana/src/kapa2/src/PSFrame.c	(revision 15541)
+++ /trunk/Ohana/src/kapa2/src/PSFrame.c	(revision 15542)
@@ -24,4 +24,7 @@
     
     if (graph[0].axis[i].areticks) {
+      if (isnan(graph[0].axis[i].min) || isinf(graph[0].axis[i].min)) continue;
+      if (isnan(graph[0].axis[i].max) || isinf(graph[0].axis[i].max)) continue;
+
       range = graph[0].axis[i].max - graph[0].axis[i].min;
       AxisTickScale (&graph[0].axis[i], &major, &minor);
Index: /trunk/Ohana/src/kapa2/src/bDrawFrame.c
===================================================================
--- /trunk/Ohana/src/kapa2/src/bDrawFrame.c	(revision 15541)
+++ /trunk/Ohana/src/kapa2/src/bDrawFrame.c	(revision 15542)
@@ -21,4 +21,7 @@
     
     if (graph[0].axis[i].areticks) {
+      if (isnan(graph[0].axis[i].min) || isinf(graph[0].axis[i].min)) continue;
+      if (isnan(graph[0].axis[i].max) || isinf(graph[0].axis[i].max)) continue;
+
       range = graph[0].axis[i].max - graph[0].axis[i].min;
 
