diff --git a/examples/COUPLE/simple/README b/examples/COUPLE/simple/README
index 404bb37004560c6d888639bd8441eb9bffe74056..8a97137bf760dc7956c75a481f8dbf4f77ec78a5 100644
--- a/examples/COUPLE/simple/README
+++ b/examples/COUPLE/simple/README
@@ -17,33 +17,36 @@ additional wrapper library that interfaces the C interface of the
 LAMMPS library to Fortran and also translates the MPI communicator
 from Fortran to C.
 
-Once you have built LAMMPS as a library (see examples/COUPLE/README),
-you can then build any of the driver codes with compile lines like
-these, which include paths to the LAMMPS library interface, MPI (an
-installed MPICH in this case), and FFTW (assuming you built LAMMPS as
-a library with its PPPM solver).
+First build LAMMPS as a library (see examples/COUPLE/README), e.g. 
 
-This builds the C++ driver with the LAMMPS library using a C++ compiler:
+make mode=shlib mpi
 
-g++ -I/home/sjplimp/lammps/src -c simple.cpp
-g++ -L/home/sjplimp/lammps/src simple.o \
-    -llammps -lfftw -lmpich -lmpl -lpthread -o simpleCC
+You can then build any of the driver codes with compile lines like
+these, which include paths to the LAMMPS library interface, and
+linking with FFTW (only needed if you built LAMMPS as a library with
+its PPPM solver).
 
-This builds the C driver with the LAMMPS library using a C compiler:
+This builds the C++ driver with the LAMMPS library using the mpiCC
+(C++) compiler:
 
-gcc -I/home/sjplimp/lammps/src -c simple.c
-gcc -L/home/sjplimp/lammps/src simple.o \
-    -llammps -lfftw -lmpich -lmpl -lpthread -lstdc++ -o simpleC
+mpiCC -I/home/sjplimp/lammps/src -c simple.cpp
+mpiCC -L/home/sjplimp/lammps/src simple.o -llammps -lfftw -o simpleCC
+
+This builds the C driver with the LAMMPS library using the mpicc (C)
+compiler:
+
+mpicc -I/home/sjplimp/lammps/src -c simple.c
+mpicc -L/home/sjplimp/lammps/src simple.o -llammps -lfftw -o simpleC
 
 This builds the Fortran wrapper and driver with the LAMMPS library
-using a Fortran and C compiler, using the wrapper in the fortran
-directory:
+using the mpicc (C) and mpifort (Fortran) compilers, using the wrapper
+in the fortran directory:
 
 cp ../fortran/libfwrapper.c .
-gcc -I/home/sjplimp/lammps/src -c libfwrapper.c
-gfortran -I/home/sjplimp/lammps/src -c simple.f90
-gfortran -L/home/sjplimp/lammps/src simple.o libfwrapper.o \
-    -llammps -lfftw -lfmpich -lmpich -lpthread -lstdc++ -o simpleF
+mpicc -I/home/sjplimp/lammps/src -c libfwrapper.c
+mpifort -c simple.f90
+mpifort -L/home/sjplimp/lammps/src simple.o libfwrapper.o \
+    -llammps -lfftw -o simpleF
 
 You then run simpleCC, simpleC, or simpleF on a parallel machine
 on some number of processors Q with 2 arguments:
diff --git a/examples/COUPLE/simple/simple.c b/examples/COUPLE/simple/simple.c
index cc813d78fe785cd695344e8f939c356013a7cd3a..ad603e09a6b637385d2edbed5a1b49ce36d5530d 100644
--- a/examples/COUPLE/simple/simple.c
+++ b/examples/COUPLE/simple/simple.c
@@ -145,7 +145,7 @@ int main(int narg, char **arg)
     for (i = 0; i < natoms; i++) type[i] = 1;
 
     lammps_command(lmp,"delete_atoms group all");
-    lammps_create_atoms(lmp,natoms,NULL,type,x,v);
+    lammps_create_atoms(lmp,natoms,NULL,type,x,v,NULL,0);
     lammps_command(lmp,"run 10");
   }
 
diff --git a/examples/COUPLE/simple/simple.cpp b/examples/COUPLE/simple/simple.cpp
index 894c708978176747a095e681245f325991161f3f..912f4b868954e913e92010354bc6b3a296068297 100644
--- a/examples/COUPLE/simple/simple.cpp
+++ b/examples/COUPLE/simple/simple.cpp
@@ -109,11 +109,11 @@ int main(int narg, char **arg)
     int natoms = static_cast<int> (lmp->atom->natoms);
     x = new double[3*natoms];
     v = new double[3*natoms];
-    lammps_gather_atoms(lmp,"x",1,3,x);
-    lammps_gather_atoms(lmp,"v",1,3,v);
+    lammps_gather_atoms(lmp,(char *) "x",1,3,x);
+    lammps_gather_atoms(lmp,(char *) "v",1,3,v);
     double epsilon = 0.1;
     x[0] += epsilon;
-    lammps_scatter_atoms(lmp,"x",1,3,x);
+    lammps_scatter_atoms(lmp,(char *) "x",1,3,x);
 
     // these 2 lines are the same
 
@@ -124,21 +124,22 @@ int main(int narg, char **arg)
   // extract force on single atom two different ways
 
   if (lammps == 1) {
-    double **f = (double **) lammps_extract_atom(lmp,"f");
+    double **f = (double **) lammps_extract_atom(lmp,(char *) "f");
     printf("Force on 1 atom via extract_atom: %g\n",f[0][0]);
 
-    double *fx = (double *) lammps_extract_variable(lmp,"fx","all");
+    double *fx = (double *) 
+      lammps_extract_variable(lmp,(char *) "fx",(char *) "all");
     printf("Force on 1 atom via extract_variable: %g\n",fx[0]);
   }
 
   // use commands_string() and commands_list() to invoke more commands
 
-  char *strtwo = "run 10\nrun 20";
+  char *strtwo = (char *) "run 10\nrun 20";
   if (lammps == 1) lammps_commands_string(lmp,strtwo);
 
   char *cmds[2];
-  cmds[0] = "run 10";
-  cmds[1] = "run 20";
+  cmds[0] = (char *) "run 10";
+  cmds[1] = (char *) "run 20";
   if (lammps == 1) lammps_commands_list(lmp,2,cmds);
 
   // delete all atoms
diff --git a/examples/COUPLE/simple/simple.f90 b/examples/COUPLE/simple/simple.f90
index eb5c272527933df6df52c0d882b497142aebf293..0ac3e4fd5cb715c2454da7e61657bad7aacb2da3 100644
--- a/examples/COUPLE/simple/simple.f90
+++ b/examples/COUPLE/simple/simple.f90
@@ -115,9 +115,12 @@ PROGRAM f_driver
      CALL lammps_get_natoms(ptr,natoms)
      ALLOCATE(x(3*natoms))
 
-     CALL lammps_gather_atoms(ptr,'x',1,3,x);
-     x(1) = x(1) + epsilon
-     CALL lammps_scatter_atoms(ptr,'x',1,3,x);
+     ! these calls are commented out, b/c libfwrapper.c
+     ! needs to be updated to use gather_atoms and scatter_atoms
+
+     !CALL lammps_gather_atoms(ptr,'x',1,3,x);
+     !x(1) = x(1) + epsilon
+     !CALL lammps_scatter_atoms(ptr,'x',1,3,x);
 
      DEALLOCATE(x)
 
diff --git a/src/create_bonds.cpp b/src/create_bonds.cpp
index ff62e867877205e0e10b10f25e96acc30fbe9b8a..2e59b11aea4f7b4e41e0dc098cf167709aa4fc97 100644
--- a/src/create_bonds.cpp
+++ b/src/create_bonds.cpp
@@ -306,10 +306,6 @@ void CreateBonds::many()
               nadd_bonds,atom->nbonds);
     }
   }
-  // trigger clearing the list of available neighbor list requests
-  // and a full rebuild of them during the next run setup.
-  // otherwise the request from this command may linger around.
-  neighbor->init();
 }
 
 /* ---------------------------------------------------------------------- */
@@ -342,7 +338,7 @@ void CreateBonds::single_bond()
     bond_atom[m][num_bond[m]] = batom2;
     num_bond[m]++;
   }
-  ++atom->nbonds;
+  atom->nbonds++;
 
   if (force->newton_bond) return;
 
@@ -390,7 +386,7 @@ void CreateBonds::single_angle()
     angle_atom3[m][num_angle[m]] = aatom3;
     num_angle[m]++;
   }
-  ++atom->nangles;
+  atom->nangles++;
 
   if (force->newton_bond) return;
 
@@ -454,7 +450,7 @@ void CreateBonds::single_dihedral()
     dihedral_atom4[m][num_dihedral[m]] = datom4;
     num_dihedral[m]++;
   }
-  ++atom->ndihedrals;
+  atom->ndihedrals++;
 
   if (force->newton_bond) return;
 
diff --git a/src/delete_atoms.cpp b/src/delete_atoms.cpp
index a4219dbecbc271a0c9c136767a970b2a955c6aff..489c5bf5d5f4ce5837d42ee64d8fcd04be3103f3 100644
--- a/src/delete_atoms.cpp
+++ b/src/delete_atoms.cpp
@@ -407,10 +407,6 @@ void DeleteAtoms::delete_overlap(int narg, char **arg)
       break;
     }
   }
-  // trigger clearing the list of available neighbor list requests
-  // and a full rebuild of them during the next run setup.
-  // otherwise the request from this command may linger around.
-  neighbor->init();
 }
 
 /* ----------------------------------------------------------------------
diff --git a/src/fix_neigh_history.cpp b/src/fix_neigh_history.cpp
index 623fbff756e5be8f4cb215767533e6d9bc88979e..e8bfe840d8059b6b9ac0d20ad1e7132e995b357f 100644
--- a/src/fix_neigh_history.cpp
+++ b/src/fix_neigh_history.cpp
@@ -715,12 +715,13 @@ void FixNeighHistory::set_arrays(int i)
 int FixNeighHistory::pack_reverse_comm_size(int n, int first)
 {
   int i,last;
+  int dnump1 = dnum + 1;
 
   int m = 0;
   last = first + n;
 
   for (i = first; i < last; i++)
-    m += 1 + (dnum+1)*npartner[i];
+    m += 1 + dnump1*npartner[i];
 
   return m;
 }
diff --git a/src/neigh_request.cpp b/src/neigh_request.cpp
index 6325eec56683e892b5384f20ed2d9610dfdb19fa..3c06f023fc75dda13c13da8de535001810cd80fd 100644
--- a/src/neigh_request.cpp
+++ b/src/neigh_request.cpp
@@ -152,7 +152,7 @@ int NeighRequest::identical(NeighRequest *other)
   if (cutoff != other->cutoff) same = 0;
 
   if (skip != other->skip) same = 0;
-  if (skip) same = same_skip(other);
+  if (skip && other->skip) same = same_skip(other);
 
   return same;
 }