diff --git a/src/parser/Gmsh.tab.cpp b/src/parser/Gmsh.tab.cpp
index c14240e95c6cf389a405023af6c7f2de9dadb3ab..f0c08d20aa690b3292f09128bf2f4cb92dd77534 100644
--- a/src/parser/Gmsh.tab.cpp
+++ b/src/parser/Gmsh.tab.cpp
@@ -15697,6 +15697,9 @@ void getAllElementaryTags(int dim, List_T *out)
 
 void getAllPhysicalTags(int dim, List_T *out)
 {
+  if(GModel::current()->getOCCInternals() &&
+     GModel::current()->getOCCInternals()->getChanged())
+    GModel::current()->getOCCInternals()->synchronize(GModel::current());
   if(GModel::current()->getGEOInternals()->getChanged())
     GModel::current()->getGEOInternals()->synchronize(GModel::current());
 
diff --git a/src/parser/Gmsh.y b/src/parser/Gmsh.y
index 69c62648bb5a8ecd8cf59913f955023b08a9de18..70909b73cf1691abe425d45f64f2450a0f9c4a0b 100644
--- a/src/parser/Gmsh.y
+++ b/src/parser/Gmsh.y
@@ -7282,6 +7282,9 @@ void getAllElementaryTags(int dim, List_T *out)
 
 void getAllPhysicalTags(int dim, List_T *out)
 {
+  if(GModel::current()->getOCCInternals() &&
+     GModel::current()->getOCCInternals()->getChanged())
+    GModel::current()->getOCCInternals()->synchronize(GModel::current());
   if(GModel::current()->getGEOInternals()->getChanged())
     GModel::current()->getGEOInternals()->synchronize(GModel::current());