diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 6f9d178ae17b1b8a2396a18e9c53b887445d2672..640103aa32c41d9b55ba76469abcf90f9f62ff59 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -867,6 +867,7 @@ MElement *GModel::getMeshElementByTag(int n)
 int GModel::getMeshElementIndex(MElement *e)
 {
   if(!e) return 0;
+  if(_elementIndexCache.empty()) return e->getNum();
   std::map<int, int>::iterator it = _elementIndexCache.find(e->getNum());
   if(it != _elementIndexCache.end()) return it->second;
   return e->getNum();