--- a/trunk/src/sphericalToPixel.cpp
+++ b/trunk/src/sphericalToPixel.cpp
@@ -28,12 +28,21 @@
         }           
 
         Options *options = Options::getInstance();
+
+        // check if point is behind the limb
+        bool isVisible = true;
+        double oX, oY, oZ;
+        options->getOrigin(oX, oY, oZ);
+        double tX, tY, tZ;
+        planet->getPosition(tX, tY, tZ);
+        double cosAngle = ndot(tX-X, tY-Y, tZ-Z, oX-X, oY-Y, oZ-Z);
+        if (cosAngle > 0) isVisible = false;
+
         view->XYZToPixel(X, Y, Z, X, Y, Z);
         X += options->CenterX();
         Y += options->CenterY();
-        
-        // true if the point is in front of us
-        returnVal = (Z > 0);
+
+        returnVal = (isVisible && Z > 0);
     }
     else if (projection != NULL)
     {