diff --git a/Graphics/drawGlyph.cpp b/Graphics/drawGlyph.cpp
index e0e1b53ab7e075b72251c419f664c490eb2705b8..c7c73fae9c774be306a3ad36080cb985d33ce963 100644
--- a/Graphics/drawGlyph.cpp
+++ b/Graphics/drawGlyph.cpp
@@ -192,6 +192,9 @@ void drawContext::drawImage(const std::string &name, double x, double y, double
   GLint matrixMode = 0;
   if(billboard){
     glRasterPos3d(x, y, z);
+    GLboolean valid;
+    glGetBooleanv(GL_CURRENT_RASTER_POSITION_VALID, &valid);
+    if(valid == GL_FALSE) return; // the primitive is culled
     GLfloat pos[4];
     glGetFloatv(GL_CURRENT_RASTER_POSITION, pos);
     glGetIntegerv(GL_MATRIX_MODE, &matrixMode);