diff --git a/src/accelerator_intel.h b/src/accelerator_intel.h
index 9398a06f1522ebde2654612c7b119fb0687a1f53..fab07989ff71637ef08c735906550dc98438fa17 100644
--- a/src/accelerator_intel.h
+++ b/src/accelerator_intel.h
@@ -24,7 +24,6 @@
   #ifdef LMP_INTEL_OFFLOAD
   #ifdef __INTEL_OFFLOAD
   template <class flt_t, class acc_t> friend class IntelBuffers;
-  inline int * special_flag_alloc() { return special_flag; }
   #endif
   #endif
 
@@ -32,7 +31,7 @@
   void *fix_intel;
 
   template <class flt_t, class acc_t>
-  void bin_atoms(void *, int *);
+  void bin_atoms(void *, int *, int *);
 
   template <class flt_t, class acc_t, int, int>
   void hbni(const int, NeighList *, void *, const int, const int, void *,
diff --git a/src/input.cpp b/src/input.cpp
index a3872062416d479019e12a06d3d86df1578f16ad..3ceb9069114414abab544ea8a200c5bce98d528c 100644
--- a/src/input.cpp
+++ b/src/input.cpp
@@ -1605,13 +1605,6 @@ void Input::package()
     modify->add_fix(2+narg,fixarg);
     delete [] fixarg;
 
-    // set integrator = verlet/intel
-    // -sf intel does same thing in Update constructor via suffix
-
-    char *str;
-    str = (char *) "verlet/intel";
-    update->create_integrate(1,&str,0);
-
   } else error->all(FLERR,"Illegal package command");
 }
 
diff --git a/src/integrate.cpp b/src/integrate.cpp
index b825a197847bf52112f45076b6c5358f8265fae8..db71ef563c5b197b55aa16f72fbe62d5144158b6 100644
--- a/src/integrate.cpp
+++ b/src/integrate.cpp
@@ -57,9 +57,9 @@ void Integrate::init()
   // should add checks:
   // for any acceleration package that has its own integrate/minimize
   // in case input script has reset the run or minimize style explicitly
-  // e.g. invalid to have intel pair style with non-intel verlet
-  // but OK to have intel verlet with non intel pair style (just warn)
-  // ditto for USER-CUDA and KOKKOS package verlet with their pair, fix, etc
+  // e.g. invalid to have kokkos pair style with non-kokkos verlet
+  // but OK to have kokkos verlet with non kokkos pair style (just warn)
+  // ditto for USER-CUDA package verlet with their pair, fix, etc
   // making these checks would require all the pair, fix, etc styles have
   //   cuda, kokkos, intel flags
 }
diff --git a/src/min.cpp b/src/min.cpp
index a6cdfcc5fe98c2f2eb482fbf4aad5496b578f7fa..5cdd5428de2b69dbb8320ad512977e5ec110b7eb 100644
--- a/src/min.cpp
+++ b/src/min.cpp
@@ -274,6 +274,7 @@ void Min::setup()
     else force->kspace->compute_dummy(eflag,vflag);
   }
 
+  modify->pre_reverse(eflag,vflag);
   if (force->newton) comm->reverse_comm();
 
   // update per-atom minimization variables stored by pair styles
@@ -354,6 +355,7 @@ void Min::setup_minimal(int flag)
     else force->kspace->compute_dummy(eflag,vflag);
   }
 
+  modify->pre_reverse(eflag,vflag);
   if (force->newton) comm->reverse_comm();
 
   // update per-atom minimization variables stored by pair styles
@@ -513,6 +515,11 @@ double Min::energy_force(int resetflag)
     timer->stamp(Timer::KSPACE);
   }
 
+  if (modify->n_pre_reverse) {
+    modify->pre_reverse(eflag,vflag);
+    timer->stamp(Timer::MODIFY);
+  }
+
   if (force->newton) {
     comm->reverse_comm();
     timer->stamp(Timer::COMM);
diff --git a/src/neighbor.cpp b/src/neighbor.cpp
index f2d355db047b6367647e3f1187729c0bd45b4173..206bd7ba9106de5ad838a69b62001e2541ece460 100644
--- a/src/neighbor.cpp
+++ b/src/neighbor.cpp
@@ -1818,7 +1818,13 @@ void Neighbor::setup_bins()
   if (mbins > maxhead) {
     maxhead = mbins;
     memory->destroy(binhead);
+
+    // USER-INTEL package requires one additional element
+    #if defined(LMP_USER_INTEL)
+    memory->create(binhead,maxhead + 1,"neigh:binhead");
+    #else
     memory->create(binhead,maxhead,"neigh:binhead");
+    #endif
   }
 
   // create stencil of bins to search over in neighbor list construction