diff --git a/listlbm.py b/listlbm.py
index d1751207be303e112ec68c81140d055accd81ddf..b91d8a60ea9b652f335e8b5125a30174e8d704b4 100644
--- a/listlbm.py
+++ b/listlbm.py
@@ -118,6 +118,9 @@ class SparseLbmMapping:
 
         result = []
         for direction_idx, direction in enumerate(stencil):
+            if all(d_i == 0 for d_i in direction):
+                assert direction_idx == 0
+                continue
             for own_cell_idx, cell in enumerate(self.fluid_coordinates):
                 inv_neighbor_cell = np.array([cell_i - dir_i for cell_i, dir_i in zip(cell, direction)])
                 if flag_arr[tuple(inv_neighbor_cell)] & fluid_boundary_mask:
@@ -142,7 +145,7 @@ class SparseLbmMapping:
                         raise ValueError("Could not find neighbor for {} direction {}".format(cell, direction))
 
         index_array = np.array(result, dtype=np.uint32)
-        index_arr = index_array.reshape([len(stencil), self.num_fluid_cells])
+        index_arr = index_array.reshape([len(stencil) - 1, self.num_fluid_cells])
         index_arr = index_arr.swapaxes(0, 1)
         return index_arr