--- vtkRenderer.cxx.orig	2009-11-03 13:59:19.260766485 +0800
+++ vtkRenderer.cxx	2009-11-03 13:57:53.899765124 +0800
@@ -1127,6 +1127,11 @@
       }
     }
   
+  // Fix the range for perspective projections only.
+  // Otherwise, parallel projections will clip on the near plane.
+  if (!this->ActiveCamera->GetParallelProjection())
+    {
+
   // Do not let the range behind the camera throw off the calculation.
   if (range[0] < 0.0)
     {
@@ -1163,7 +1168,15 @@
     {
     range[0] = this->NearClippingPlaneTolerance*range[1];
     }
-  
+    }
+
+  else   // for parallel projections
+    {
+    // Give ourselves a little breathing room
+    range[0] = 0.99*range[0] - (range[1] - range[0])*0.5;
+    range[1] = 1.01*range[1] + (range[1] - range[0])*0.5;
+    }
+
   this->ActiveCamera->SetClippingRange( range );
 }
 
