diff --git a/src/mesh/GmshReader.cpp b/src/mesh/GmshReader.cpp
index c032c4b5c65ea93be137ad64c9afc6e82ee58bfc..43074d6f9c37936187aa4c5ee880fb21fde53f71 100644
--- a/src/mesh/GmshReader.cpp
+++ b/src/mesh/GmshReader.cpp
@@ -50,7 +50,7 @@ class ErrorHandler
    * Prints the error message
    *
    */
-  virtual void writeErrorMessage();
+  virtual void writeErrorMessage() const;
 
   /**
    * The copy constructor
@@ -88,7 +88,7 @@ class ErrorHandler
     ;
   }
 };
-void ErrorHandler::writeErrorMessage()
+void ErrorHandler::writeErrorMessage() const
 {
   switch(__type) {
     case asked: {
@@ -291,7 +291,7 @@ GmshReader::GmshReader(const std::string& filename)
     this->__proceedData();
     // this->__createMesh();
   }
-  catch(ErrorHandler e) {
+  catch(const ErrorHandler& e) {
     e.writeErrorMessage();
     std::exit(0);
   }
@@ -793,10 +793,6 @@ GmshReader::__proceedData()
   std::cout << "- dimension 3 entities: " << (dimension3_mask, elementNumber) << '\n';
   if ((dimension3_mask, elementNumber)>0) {
     const size_t nb_cells = (dimension3_mask, elementNumber);
-    size_t max_nb_node_per_cell=4;
-    if (elementNumber[4] > 0) {
-      max_nb_node_per_cell = 8;
-    }
 
     std::vector<std::vector<unsigned int>> cell_by_node_vector(nb_cells);
     const size_t nb_tetrahedra = __tetrahedra.extent(0);
@@ -854,10 +850,6 @@ GmshReader::__proceedData()
 
   } else if ((dimension2_mask, elementNumber)>0) {
     const size_t nb_cells = (dimension2_mask, elementNumber);
-    size_t max_nb_node_per_cell=3;
-    if (elementNumber[2] > 0) {
-      max_nb_node_per_cell = 4;
-    }
 
     std::vector<std::vector<unsigned int>> cell_by_node_vector(nb_cells);
     const size_t nb_triangles = __triangles.extent(0);