diff --git a/src/mesh/ConnectivityDispatcher.cpp b/src/mesh/ConnectivityDispatcher.cpp
index 48565b810181a8d2259ab1f239c9b649fb021899..fd99475c2ecdeff01c8aa477e0437d84e08259e5 100644
--- a/src/mesh/ConnectivityDispatcher.cpp
+++ b/src/mesh/ConnectivityDispatcher.cpp
@@ -23,7 +23,6 @@ ConnectivityDispatcher<Dimension>::_buildNewOwner()
         = m_connectivity.template getItemToItemMatrix<item_type,ItemType::cell>();
 
     const auto& cell_number = m_connectivity.cellNumber();
-
     const auto& cell_new_owner = this->_dispatchedInfo<ItemType::cell>().m_new_owner;
 
     using ItemId = ItemIdT<item_type>;
@@ -245,7 +244,7 @@ ConnectivityDispatcher<Dimension>::_buildSubItemNumberToIdMap()
   static_assert(ItemOfItemT::item_type == ItemType::cell, "Dispatcher requires to be built using cell as master entities");
 
   const auto& cell_sub_item_number_to_recv_by_proc
-      = this->_dispatchedInfo<ItemOfItemT>().m_sub_item_of_item_numbers_to_recv_by_proc;
+      = this->_dispatchedInfo<ItemOfItemT>().m_sub_item_numbers_to_recv_by_proc;
 
   auto& sub_item_number_id_map = this->_dispatchedInfo<ItemOfItemT::sub_item_type>().m_number_to_id_map;
   for (size_t i_rank=0; i_rank<parallel::size(); ++i_rank) {
@@ -283,54 +282,53 @@ template <typename SubItemOfItemT>
 void
 ConnectivityDispatcher<Dimension>::_buildSubItemNumbersToRecvByProc()
 {
-  std::vector<Array<const int>> item_sub_item_numbering_to_send_by_proc =
+  const std::vector<Array<const int>> sub_item_numbers_to_send_by_proc =
       [&] () {
         const auto& item_to_sub_item_matrix
             = m_connectivity.template getItemToItemMatrix<SubItemOfItemT::item_type,
                                                           SubItemOfItemT::sub_item_type>();
 
-        const ItemValue<const int, SubItemOfItemT::sub_item_type>& sub_item_number =
-            m_connectivity.template number<SubItemOfItemT::sub_item_type>();
+        const auto& sub_item_number = m_connectivity.template number<SubItemOfItemT::sub_item_type>();
 
         using ItemId = ItemIdT<SubItemOfItemT::item_type>;
         using SubItemId = ItemIdT<SubItemOfItemT::sub_item_type>;
 
-        std::vector<Array<const int>> item_sub_item_numbering_to_send_by_proc(parallel::size());
+        std::vector<Array<const int>> sub_item_numbers_to_send_by_proc(parallel::size());
         for (size_t i_rank=0; i_rank < parallel::size(); ++i_rank) {
           const auto& item_list_to_send_by_proc
               = this->_dispatchedInfo<SubItemOfItemT::item_type>().m_list_to_send_by_proc;
 
-          std::vector<int> sub_item_numbering_by_item_vector;
+          std::vector<int> sub_item_numbers_by_item_vector;
           for (size_t j=0; j<item_list_to_send_by_proc[i_rank].size(); ++j) {
             const ItemId& item_id = item_list_to_send_by_proc[i_rank][j];
             const auto& sub_item_list = item_to_sub_item_matrix[item_id];
             for (size_t r=0; r<sub_item_list.size(); ++r) {
               const SubItemId& sub_item_id = sub_item_list[r];
-              sub_item_numbering_by_item_vector.push_back(sub_item_number[sub_item_id]);
+              sub_item_numbers_by_item_vector.push_back(sub_item_number[sub_item_id]);
             }
           }
-          item_sub_item_numbering_to_send_by_proc[i_rank] = convert_to_array(sub_item_numbering_by_item_vector);
+          sub_item_numbers_to_send_by_proc[i_rank] = convert_to_array(sub_item_numbers_by_item_vector);
         }
-        return item_sub_item_numbering_to_send_by_proc;
+        return sub_item_numbers_to_send_by_proc;
       } ();
 
   const auto& number_of_sub_item_per_item_to_recv_by_proc =
       this->_dispatchedInfo<SubItemOfItemT>().m_number_of_sub_item_per_item_to_recv_by_proc;
 
-  std::vector<Array<int>> recv_item_sub_item_numbering_by_proc(parallel::size());
+  std::vector<Array<int>> sub_item_numbers_to_recv_by_proc(parallel::size());
   for (size_t i_rank=0; i_rank < parallel::size(); ++i_rank) {
-    recv_item_sub_item_numbering_by_proc[i_rank]
+    sub_item_numbers_to_recv_by_proc[i_rank]
         = Array<int>(sum(number_of_sub_item_per_item_to_recv_by_proc[i_rank]));
   }
-  parallel::exchange(item_sub_item_numbering_to_send_by_proc, recv_item_sub_item_numbering_by_proc);
+  parallel::exchange(sub_item_numbers_to_send_by_proc, sub_item_numbers_to_recv_by_proc);
+
+  auto& const_sub_item_numbers_to_recv_by_proc =
+      this->_dispatchedInfo<SubItemOfItemT>().m_sub_item_numbers_to_recv_by_proc;
 
-  std::vector<Array<const int>> const_recv_item_sub_item_numbering_by_proc(parallel::size());
+  const_sub_item_numbers_to_recv_by_proc.resize(parallel::size());
   for (size_t i_rank=0; i_rank < parallel::size(); ++i_rank) {
-    const_recv_item_sub_item_numbering_by_proc[i_rank] = recv_item_sub_item_numbering_by_proc[i_rank];
+    const_sub_item_numbers_to_recv_by_proc[i_rank] = sub_item_numbers_to_recv_by_proc[i_rank];
   }
-
-  this->_dispatchedInfo<SubItemOfItemT>().m_sub_item_of_item_numbers_to_recv_by_proc
-      = const_recv_item_sub_item_numbering_by_proc;
 }
 
 template <int Dimension>
@@ -351,7 +349,7 @@ ConnectivityDispatcher<Dimension>::_buildItemToSubItemDescriptor()
       this->_dispatchedInfo<sub_item_type>().m_number_to_id_map;
 
   const auto& recv_item_of_item_numbers_by_proc =
-      this->_dispatchedInfo<ItemOfItemT>().m_sub_item_of_item_numbers_to_recv_by_proc;
+      this->_dispatchedInfo<ItemOfItemT>().m_sub_item_numbers_to_recv_by_proc;
 
   for (size_t i_rank=0; i_rank < parallel::size(); ++i_rank) {
     int l=0;
diff --git a/src/mesh/ConnectivityDispatcher.hpp b/src/mesh/ConnectivityDispatcher.hpp
index c70b1c69ea42f2f1c6a69b8d88e7f77487464dc5..13eb5e69cc14685587ef4b7883a3543148b3d29e 100644
--- a/src/mesh/ConnectivityDispatcher.hpp
+++ b/src/mesh/ConnectivityDispatcher.hpp
@@ -69,7 +69,7 @@ class ConnectivityDispatcher
   struct DispatchedItemOfItemInfo
   {
     std::vector<Array<const int>> m_number_of_sub_item_per_item_to_recv_by_proc;
-    std::vector<Array<const int>> m_sub_item_of_item_numbers_to_recv_by_proc;
+    std::vector<Array<const int>> m_sub_item_numbers_to_recv_by_proc;
   };
 
   DispatchedItemOfItemInfo<NodeOfCell> m_dispatched_node_of_cell_info;