             static unsigned int max_block_size = UINT_MAX;
             if (max_block_size == UINT_MAX)
                 max_block_size = get_max_block_size_multi(gpu_compute_nlist_multi_binned_kernel<3,cur_tpp>);
-            if (compute_capability < 35) gpu_nlist_multi_binned_bind_texture(d_cell_xyzf, cli.getNumElements());
+            if (compute_capability < 35) gpu_nlist_multi_binned_bind_texture(d_cell_xyzf,
+                                                                             cli.getNumElements(),
+                                                                             d_stencil,
+                                                                             stencil_idx.getNumElements());
 
             unsigned int run_block_size = (block_size < max_block_size) ? block_size : max_block_size;
             dim3 grid(N / (block_size/threads_per_particle) + 1);

                    has_neighbor = 1;
                    }

                } while (0); // loop that we can break out of when we get exclusions

            // advance cur_offset
            cur_offset += threads_per_particle;

            if (cur_adj < n_stencil)
                {
                // compute the stenciled cell cartesian coordinates
                Scalar4 stencil = texFetchScalar4(d_stencil, stencil_1d_tex, stencil_idx(cur_adj, my_type));
                int sib = ib + __scalar_as_int(stencil.x);
                int sjb = jb + __scalar_as_int(stencil.y);
                int skb = kb + __scalar_as_int(stencil.z);
                cell_dist2 = stencil.w;

                // wrap through the boundary
                if (sib >= (int)ci.getW() && periodic.x) sib -= ci.getW();
                if (sib < 0 && periodic.x) sib += ci.getW();
                if (sjb >= (int)ci.getH() && periodic.y) sjb -= ci.getH();
                if (sjb < 0 && periodic.y) sjb += ci.getH();
                if (skb >= (int)ci.getD() && periodic.z) skb -= ci.getD();
                if (skb < 0 && periodic.z) skb += ci.getD();

                neigh_cell = ci(sib, sjb, skb);
                neigh_size = d_cell_size[neigh_cell];
                }
            else
                // we are past the end of the cell neighbors
