1075,1080d1074
<   // Do not let the range behind the camera throw off the calculation.
<   if (range[0] < 0.0)
<     {
<     range[0] = 0.0;
<     }
< 
1085,1087c1079,1082
<   // Make sure near is not bigger than far
<   range[0] = (range[0] >= range[1])?(0.01*range[1]):(range[0]);
< 
---
>   // Fix the range for perspective projections only.
>   // Otherwise, parallel projections will clip on the near plane.
>   if (!this->ActiveCamera->GetParallelProjection())
>     {
1104c1099,1110
<   // make sure the front clipping range is not too far from the far clippnig
---
>     // Do not let the range behind the camera throw off the calculation.
>     if (range[0] < 0.0)
>       {
>       range[0] = 0.0;
>       }
> 
>     // Make sure near is not bigger than far
>     if (range[0] >= range[1])
>       {
>       range[0] = this->NearClippingPlaneTolerance*range[1];
>       }
>     // make sure the front clipping range is not too far from the far clipping
1107c1113
<   if (range[0] < this->NearClippingPlaneTolerance*range[1])
---
>     else if (range[0] < this->NearClippingPlaneTolerance*range[1])
1109a1116
>       }
