diff --git a/modules/mol/alg/src/accessibility.cc b/modules/mol/alg/src/accessibility.cc
index 276b53ba2256802e9c9afc52c2f4b49e308e796f..be95bfeb03421916779f12af120dab8af8841faa 100644
--- a/modules/mol/alg/src/accessibility.cc
+++ b/modules/mol/alg/src/accessibility.cc
@@ -24,14 +24,15 @@ struct Cube {
 };
 
 struct CubeGrid {
-  CubeGrid(Real cel, int x_cubes, int y_cubes, int z_cubes,
+  CubeGrid(Real cel, int x_c, int y_c, int z_c,
            Real x_min, Real y_min, Real z_min): cube_edge_length(cel),
-                                                   x_cubes(x_cubes),
-                                                   y_cubes(y_cubes),
-                                                   z_cubes(z_cubes),
-                                                   x_min(x_min),
-                                                   y_min(y_min),
-                                                   z_min(z_min) {
+                                                x_min(x_min),
+                                                y_min(y_min),
+                                                z_min(z_min) {
+
+    x_cubes = std::max(1, x_c);
+    y_cubes = std::max(1, y_c);
+    z_cubes = std::max(1, z_c);
     int num_cubes = x_cubes * y_cubes * z_cubes;
     cubes = new Cube*[num_cubes];
     // assign NULL to each cube
@@ -49,11 +50,18 @@ struct CubeGrid {
     delete [] cubes;
   }
 
+  int GetCubeIdx(Real x, Real y, Real z) {
+    int x_cube = std::min(static_cast<int>((x - x_min) / cube_edge_length), 
+                          x_cubes - 1);
+    int y_cube = std::min(static_cast<int>((y - y_min) / cube_edge_length), 
+                          y_cubes - 1);
+    int z_cube = std::min(static_cast<int>((z - z_min) / cube_edge_length), 
+                          z_cubes - 1);    
+    return x_cube * y_cubes * z_cubes + y_cube * z_cubes + z_cube;
+  }
+
   void AddIndex(Real x, Real y, Real z, int idx) {
-    int x_cube = (x - x_min) / cube_edge_length;
-    int y_cube = (y - y_min) / cube_edge_length;
-    int z_cube = (z - z_min) / cube_edge_length;
-    int cube_idx = x_cube * y_cubes * z_cubes + y_cube * z_cubes + z_cube;
+    int cube_idx = this->GetCubeIdx(x, y, z);
     if(cubes[cube_idx] == NULL) cubes[cube_idx] = new Cube; 
     cubes[cube_idx]->AddIndex(idx);
   }
diff --git a/modules/mol/base/doc/entity.rst b/modules/mol/base/doc/entity.rst
index 3b0aa5c9fdcd51cdb563922b9fb384f8ec046736..424bda032f10bcc6dba3278dae229ef14dd5ed42 100644
--- a/modules/mol/base/doc/entity.rst
+++ b/modules/mol/base/doc/entity.rst
@@ -1865,7 +1865,7 @@ Other Entity-Related Functions
 Residue Numbering
 --------------------------------------------------------------------------------
 
-.. class:: ResNum(num, ins_code='\0')
+.. class:: ResNum(num, ins_code='\\0')
 
   Number for a residue. The residue number has a numeric part and an (optional)
   insertion-code. You can work with this object as if it was an integer and
diff --git a/modules/mol/base/pymod/export_entity_view.cc b/modules/mol/base/pymod/export_entity_view.cc
index 2422c154ad6a9f6e764a824264066b550807d9b3..19781a94f2ae3e6019d7e57b0eb55e6119b3d1e2 100644
--- a/modules/mol/base/pymod/export_entity_view.cc
+++ b/modules/mol/base/pymod/export_entity_view.cc
@@ -197,10 +197,10 @@ void export_EntityView()
                   make_function(&EntityView::GetBondList,
                                 return_value_policy<reference_existing_object>()))
     .def("GetChainList", &EntityView::GetChainList,
-         return_value_policy<reference_existing_object>())
+         return_value_policy<copy_const_reference>())
     .add_property("chains",
                   make_function(&EntityView::GetChainList,
-                                return_value_policy<reference_existing_object>()))
+                                return_value_policy<copy_const_reference>()))
     .def(self==self)
     .def(self!=self)
     .def("Dump", &EntityView::Dump)