                         j = d_excell_idx[excli(local_k, my_cell)];
                         #endif
 
+                        if (j == idx_i) continue;
+
                         // check against neighbor
                         postype_j = texFetchScalar4(d_postype_old, implicit_postype_old_tex, j);
                         Shape shape_j(quat<Scalar>(), s_params[__scalar_as_int(postype_j.w)]);

                shape_test.orientation = generateRandomOrientation(rng);
                }

            // check if depletant overlaps with the old configuration
            unsigned int excell_size = d_excell_size[my_cell];
            overlap_checks += excell_size;

            vec3<Scalar> r_ij;

            for (unsigned int k = 0; k < excell_size; k += group_size)
                {


    unsigned int overlap_checks = 0;

    // number of depletants inserted
    unsigned int n_inserted = 0;

    Shape shape_test(quat<Scalar>(), s_params[depletant_type]);

