diff --git a/Geo/GModelIO_MESH.cpp b/Geo/GModelIO_MESH.cpp
index 15e2ea702a7280a06c683696baecbe0bcccc49c7..0d2e73a02a5237bd030a9e948599b7e10ccec9b4 100644
--- a/Geo/GModelIO_MESH.cpp
+++ b/Geo/GModelIO_MESH.cpp
@@ -56,7 +56,10 @@ int GModel::readMESH(const std::string &name)
     if(buffer[0] != '#'){ // skip comments and empty lines
       str[0]='\0';
       sscanf(buffer, "%s", str);
-      if(!strcmp(str, "Dimension")){
+      if(!strncmp(buffer, "Dimension 3", 11)){
+        // alternative single-line 'Dimension' field used by CGAL
+      }
+      else if(!strcmp(str, "Dimension")){
         if(!fgets(buffer, sizeof(buffer), fp)) break;
       }
       else if(!strcmp(str, "Vertices")){