diff --git a/arbor/communication/dry_run_context.cpp b/arbor/communication/dry_run_context.cpp
index 6c8e632f7ddeac2c9053d89a8a471be180b92f5f..15714475c8da66b5918573ec0c17a3fe978bf7d4 100644
--- a/arbor/communication/dry_run_context.cpp
+++ b/arbor/communication/dry_run_context.cpp
@@ -29,7 +29,7 @@ struct dry_run_context_impl {
 
         for (count_type i = 0; i < num_ranks_; i++) {
             for (count_type j = i*local_size; j < (i+1)*local_size; j++){
-                gathered_spikes[j].source += num_cells_per_tile_*i;
+                gathered_spikes[j].source.gid += num_cells_per_tile_*i;
             }
         }
 
diff --git a/arbor/include/arbor/common_types.hpp b/arbor/include/arbor/common_types.hpp
index 34e49c3e453bcbb844b5a6eea8d4905e9d977245..418ba7865b5e18ce8cafabfcd0d506fb7b78ceee 100644
--- a/arbor/include/arbor/common_types.hpp
+++ b/arbor/include/arbor/common_types.hpp
@@ -47,28 +47,6 @@ using cell_local_size_type = std::make_unsigned_t<cell_lid_type>;
 struct cell_member_type {
     cell_gid_type gid;
     cell_lid_type index;
-
-    cell_member_type& operator= (cell_gid_type inc) {
-        gid = inc;
-        return *this;
-    }
-
-    cell_member_type& operator+= (cell_gid_type inc) {
-        gid += inc;
-        return *this;
-    }
-
-    friend cell_member_type operator+ (const cell_member_type& lhs, const cell_gid_type rhs) {
-        cell_member_type result = lhs;
-        result.gid += rhs;
-        return result;
-    }
-
-    friend cell_member_type operator% (const cell_member_type& lhs, const cell_gid_type rhs) {
-        cell_member_type result = lhs;
-        result.gid %= rhs;
-        return result;
-    }
 };
 
 ARB_DEFINE_LEXICOGRAPHIC_ORDERING(cell_member_type,(a.gid,a.index),(b.gid,b.index))
diff --git a/arbor/include/arbor/symmetric_recipe.hpp b/arbor/include/arbor/symmetric_recipe.hpp
index d3a3b1a4daaed8662314adfe0d854ef23ad4afb0..70f1568315d764e5f315ec494255c97799d14fbc 100644
--- a/arbor/include/arbor/symmetric_recipe.hpp
+++ b/arbor/include/arbor/symmetric_recipe.hpp
@@ -67,8 +67,8 @@ public:
         std::vector<cell_connection> conns = tiled_recipe_->connections_on(i % n_local);
 
         for (unsigned j = 0; j < conns.size(); j++) {
-            conns[j].source = (conns[j].source + offset) % n_global;
-            conns[j].dest = (conns[j].dest + offset) % n_global;
+            conns[j].source.gid = (conns[j].source.gid + offset) % n_global;
+            conns[j].dest.gid = (conns[j].dest.gid + offset) % n_global;
         }
         return conns;
     }