Index: lucene/spatial3d/src/java/org/apache/lucene/bkdtree3d/BKD3DTreeReader.java
===================================================================
--- lucene/spatial3d/src/java/org/apache/lucene/bkdtree3d/BKD3DTreeReader.java	(revision 1697064)
+++ lucene/spatial3d/src/java/org/apache/lucene/bkdtree3d/BKD3DTreeReader.java	(working copy)
@@ -150,7 +150,14 @@
 
         // Up above in the recursion we asked valueFilter to relate our cell, and it returned Relation.CELL_INSIDE_SHAPE
         // so all docs inside this cell better be accepted by the filter:
-        assert state.valueFilter.accept(docID);
+
+        // nocommit back to assert
+        // assert state.valueFilter.accept(docID);
+
+        if (state.valueFilter.accept(docID) == false) {
+          System.out.println("\n" + Thread.currentThread().getName() + ": FAILED: docID=" + docID);
+          throw new RuntimeException("FAILED");
+        }
       }
 
       return count;
@@ -188,6 +195,10 @@
         return 0;
       } else if (r == Relation.CELL_INSIDE_SHAPE) {
         // This cell is fully inside of the query shape: recursively add all points in this cell without filtering
+        System.out.println(Thread.currentThread() + ": switch to addAll at cell" +
+                           " x=" + Geo3DDocValuesFormat.decodeValue(cellXMin) + " to " + Geo3DDocValuesFormat.decodeValue(cellXMax) +
+                           " y=" + Geo3DDocValuesFormat.decodeValue(cellYMin) + " to " + Geo3DDocValuesFormat.decodeValue(cellYMax) +
+                           " z=" + Geo3DDocValuesFormat.decodeValue(cellZMin) + " to " + Geo3DDocValuesFormat.decodeValue(cellZMax));
         return addAll(state, nodeID);
       } else {
         // The cell crosses the shape boundary, so we fall through and do full filtering
Index: lucene/spatial3d/src/java/org/apache/lucene/bkdtree3d/PointInGeo3DShapeQuery.java
===================================================================
--- lucene/spatial3d/src/java/org/apache/lucene/bkdtree3d/PointInGeo3DShapeQuery.java	(revision 1697045)
+++ lucene/spatial3d/src/java/org/apache/lucene/bkdtree3d/PointInGeo3DShapeQuery.java	(working copy)
@@ -131,6 +131,8 @@
                                              double x = Geo3DDocValuesFormat.decodeValue(Geo3DDocValuesFormat.readInt(bytes.bytes, bytes.offset));
                                              double y = Geo3DDocValuesFormat.decodeValue(Geo3DDocValuesFormat.readInt(bytes.bytes, bytes.offset+4));
                                              double z = Geo3DDocValuesFormat.decodeValue(Geo3DDocValuesFormat.readInt(bytes.bytes, bytes.offset+8));
+                                             System.out.println("  accept docID=" + docID + " point: x=" + x + " y=" + y + " z=" + z);
+
                                              // True if x,y,z is within shape
                                              //System.out.println("    x=" + x + " y=" + y + " z=" + z);
                                              //System.out.println("    ret: " + shape.isWithin(x, y, z));
Index: lucene/spatial3d/src/test/org/apache/lucene/bkdtree3d/TestGeo3DPointField.java
===================================================================
--- lucene/spatial3d/src/test/org/apache/lucene/bkdtree3d/TestGeo3DPointField.java	(revision 1697045)
+++ lucene/spatial3d/src/test/org/apache/lucene/bkdtree3d/TestGeo3DPointField.java	(working copy)
@@ -262,6 +262,7 @@
                                       Point point = points.get(docID);
                                       //System.out.println("  accept docID=" + docID + " point=" + point + " (x=" + encodeValue(point.x) + " y=" + encodeValue(point.y) + " z=" + encodeValue(point.z) + ")");
 
+                                      System.out.println("  accept docID=" + docID + " point: x=" + point.x + " y=" + point.y + " z=" + point.z);
                                       int xEnc = encodeValue(point.x);
                                       int yEnc = encodeValue(point.y);
                                       int zEnc = encodeValue(point.z);
@@ -548,7 +549,7 @@
                 shape = new GeoCircle(planetModel, lat, lon, angle);
 
                 if (VERBOSE) {
-                  System.err.println("\nTEST: iter=" + iter + " shape="+shape);
+                  System.err.println("\n" + Thread.currentThread() + ": TEST: iter=" + iter + " shape="+shape);
                 }
 
               } else {
@@ -570,7 +571,7 @@
                 shape = GeoBBoxFactory.makeGeoBBox(planetModel, lat1, lat0, lon0, lon1);
 
                 if (VERBOSE) {
-                  System.err.println("\nTEST: iter=" + iter + " shape="+shape);
+                  System.err.println("\n" + Thread.currentThread() + ": TEST: iter=" + iter + " shape="+shape);
                 }
 
               }
