--- Imaging/vtkImageEuclideanDistance.cxx~	2003-12-23 23:06:33.000000000 +0900
+++ Imaging/vtkImageEuclideanDistance.cxx	2005-06-06 15:49:47.000000000 +0900
@@ -304,8 +304,9 @@
           if(a>0) {a--;}
           if(buff[idx0]>buffer+sq[1]) 
             {
-            b=(int)(floor)((((buff[idx0]-buffer)/spacing)-1)/2); 
-            if((idx0+b)>outMax0) {b=(outMax0)-idx0;}
+            b=(outMax0)-idx0;
+            m=(((buff[idx0]-buffer)/spacing)-1)/2;
+            if(b>m) {b=(int)(floor)(m);}
                       
             for(n=a;n<=b;n++) 
               {
@@ -333,8 +334,9 @@
           if(a>0) {a--;}
           if(buff[idx0]>buffer+sq[1]) 
             {
-            b=(int)(floor)((((buff[idx0]-buffer)/spacing)-1)/2); 
-            if((idx0-b)<outMin0) {b=idx0-outMin0;}
+            b=idx0-outMin0;
+            m=(((buff[idx0]-buffer)/spacing)-1)/2;
+            if(b>m) {b=(int)(floor)(m);}
                     
             for(n=a;n<=b;n++) 
               {
@@ -491,8 +493,9 @@
           
           if(buff[idx0]>buffer+sq[1]) 
             {
-            b=(int)(floor)((((buff[idx0]-buffer)/spacing)-1)/2); 
-            if((idx0+b)>outMax0) {b=(outMax0)-idx0;}
+            b=(outMax0)-idx0;
+            m=(((buff[idx0]-buffer)/spacing)-1)/2;
+            if(b>m) {b=(int)(floor)(m);}
                       
             for(n=a;n<=b;n++) 
               {
@@ -521,8 +524,9 @@
           if(a>0) {a--;}
           if(buff[idx0]>buffer+sq[1]) 
             {
-            b=(int)(floor)((((buff[idx0]-buffer)/spacing)-1)/2); 
-            if((idx0-b)<outMin0) b=idx0-outMin0;
+            b=idx0-outMin0;
+            m=(((buff[idx0]-buffer)/spacing)-1)/2;
+            if(b>m) {b=(int)(floor)(m);}
                     
             for(n=a;n<=b;n++) 
               {
