diff --git a/GeoLib/GEOObjects.cpp b/GeoLib/GEOObjects.cpp
index 68523246e420c6345500c61f1c809bdcc2da1dc9..ee1d9baa8ef4d55dbdb5c981e59137017c204c50 100644
--- a/GeoLib/GEOObjects.cpp
+++ b/GeoLib/GEOObjects.cpp
@@ -219,7 +219,10 @@ void GEOObjects::addSurfaceVec(
 {
     _sfc_vecs.push_back(
         new SurfaceVec(name, std::move(sfc), std::move(sfc_names)));
-    if (!sfc || !sfc->empty()) _callbacks->addSurfaceVec(name);
+    if (_sfc_vecs.back()->size() == 0)
+    {
+        _callbacks->addSurfaceVec(name);
+    }
 }
 
 bool GEOObjects::appendSurfaceVec(const std::vector<Surface*>& surfaces,