diff --git a/modules/gfx/src/impl/entity_renderer.cc b/modules/gfx/src/impl/entity_renderer.cc
index c28dbf892d81b622a7c8470e7975a5cc99f79880..1949ab11f0d5789b026e6aab82440b376e1c3873 100644
--- a/modules/gfx/src/impl/entity_renderer.cc
+++ b/modules/gfx/src/impl/entity_renderer.cc
@@ -171,7 +171,9 @@ void EntityRenderer::SetVisible(const mol::EntityView& view, bool visible)
     hidden_view_=hidden_view_.IsValid() ? Union(hidden_view_, view) : view.Copy();
   }
 
-  sel_= hidden_view_.IsValid() ? mol::Difference(full_sel_,hidden_view_) : sel_;
+  if(sel_.IsValid()){
+    sel_= hidden_view_.IsValid() ? mol::Difference(full_sel_,hidden_view_) : sel_;
+  }
 
   if(full_view_.IsValid()){
     effective_view_=hidden_view_.IsValid() ? mol::Difference(full_view_,hidden_view_): full_view_;