diff --git a/doc/src/compute_property_local.txt b/doc/src/compute_property_local.txt
index b0ec088cf79d009e7c3062907d73dbfe3279e6da..c4ad0afc95cd3fcf7655d5861c66a3f488683519 100644
--- a/doc/src/compute_property_local.txt
+++ b/doc/src/compute_property_local.txt
@@ -19,8 +19,8 @@ one or more attributes may be appended :l
                         patom1 patom2 ptype1 ptype2
                         batom1 batom2 btype
                         aatom1 aatom2 aatom3 atype
-                        datom1 datom2 datom3 dtype
-                        iatom1 iatom2 iatom3 itype :pre
+                        datom1 datom2 datom3 datom4 dtype
+                        iatom1 iatom2 iatom3 iatom4 itype :pre
 
      natom1, natom2 = IDs of 2 atoms in each pair (within neighbor cutoff)
      ntype1, ntype2 = type of 2 atoms in each pair (within neighbor cutoff)
diff --git a/src/balance.cpp b/src/balance.cpp
index 7dd13e8766ac9c16056035afe31d1e3f8e38a017..2a953caf477acc84863fa3f39e4ad54e518128cd 100644
--- a/src/balance.cpp
+++ b/src/balance.cpp
@@ -647,6 +647,21 @@ int *Balance::bisection(int sortflag)
   double *shrinklo = &shrinkall[0];
   double *shrinkhi = &shrinkall[3];
 
+  // if shrink size in any dim is zero, use box size in that dim
+
+  if (shrinklo[0] == shrinkhi[0]) {
+    shrinklo[0] = boxlo[0];
+    shrinkhi[0] = boxhi[0];
+  }
+  if (shrinklo[1] == shrinkhi[1]) {
+    shrinklo[1] = boxlo[1];
+    shrinkhi[1] = boxhi[1];
+  }
+  if (shrinklo[2] == shrinkhi[2]) {
+    shrinklo[2] = boxlo[2];
+    shrinkhi[2] = boxhi[2];
+  }
+
   // invoke RCB
   // then invert() to create list of proc assignments for my atoms
   // NOTE: (3/2017) can remove undocumented "old" option at some point
diff --git a/src/rcb.cpp b/src/rcb.cpp
index 3027920310055351370fd6bff70f61038f01b726..13e27b6fbfda836c53b381db8171f59f4b921e0d 100644
--- a/src/rcb.cpp
+++ b/src/rcb.cpp
@@ -241,9 +241,11 @@ void RCB::compute(int dimension, int n, double **x, double *wt,
     // dim_select = selected cut dimension
     // valuehalf_select = valuehalf in that dimension
     // dotmark_select = dot markings in that dimension
+    // initialize largest = -1.0 to insure a cut in some dim is accepted
+    //   e.g. if current recursed box is size 0 in all dims
 
     int dim_select = -1;
-    double largest = 0.0;
+    double largest = -1.0;
 
     for (dim = 0; dim < dimension; dim++) {