diff --git a/src/mesh/GmshReader.cpp b/src/mesh/GmshReader.cpp
index 121d98d763d4d2d3bf0214d33d0533c25b246c7f..6a6268f24e447fe8144b09d7d5296a7358fc9f84 100644
--- a/src/mesh/GmshReader.cpp
+++ b/src/mesh/GmshReader.cpp
@@ -760,13 +760,21 @@ GmshReader::__proceedData()
     std::cerr << "*** using a 3d mesh (NIY)\n";
     std::exit(0);
   } else if ((dimension2_mask, elementNumber)>0) {
-    if ((dimension1_mask, elementNumber)>0) {
-      // throw ErrorHandler(__FILE__,__LINE__,"edges are not treated", ErrorHandler::normal);
+    const size_t nb_edges = (dimension1_mask, elementNumber);
+    std::cout << "nb_edges=" << nb_edges << '\n';
+    const Kokkos::View<unsigned int*[2]> face_nodes("edge_nodes", nb_edges);
+    for (size_t j=0; j<nb_edges; ++j) {
+      face_nodes(j,0) = __edges[j][0];
+      face_nodes(j,1) = __edges[j][1];
     }
-    const size_t nb_cells = (dimension2_mask, elementNumber);
 
+    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::cout << "nb_cells=" << nb_cells << '\n';
-    const Kokkos::View<unsigned int**> cell_nodes("cell_nodes", nb_cells, 3);
+    const Kokkos::View<unsigned int**> cell_nodes("cell_nodes", nb_cells, max_nb_node_per_cell);
     const size_t nb_triangles = __triangles.extent(0);
     for (size_t j=0; j<nb_triangles; ++j) {
       cell_nodes(j,0) = __triangles[j][0];