diff --git a/modules/mol/base/src/impl/query_ast.cc b/modules/mol/base/src/impl/query_ast.cc
index 1cf0133eab0bde3bc9cd6745f79fd7c7f7bdd962..9c602c124619efd910cb7d0e32c740112d5dc487 100644
--- a/modules/mol/base/src/impl/query_ast.cc
+++ b/modules/mol/base/src/impl/query_ast.cc
@@ -93,8 +93,12 @@ bool WithinParam::HasValidRef() const {
 WithinParam::WithinParam()
   : center_(geom::Vec3(0,0,0)), radius_(0.0), lazily_bound_ref_(-1) {
 }
+
 bool WithinParam::operator==(const WithinParam& p) const {
-  return center_ == p.center_ && p.radius_==radius_;
+  if (lazily_bound_ref_>-1) {
+    return lazily_bound_ref_==p.lazily_bound_ref_ && p.radius_==radius_;
+  }
+  return center_==p.center_;
 }
 
 float WithinParam::GetRadiusSquare() const {
diff --git a/modules/mol/base/src/impl/query_impl.cc b/modules/mol/base/src/impl/query_impl.cc
index c0c2f54542355cf06660254f10dd4bfc0e21ee9c..411f1d9bc18f3df563730a8551885a7a75a86343 100644
--- a/modules/mol/base/src/impl/query_impl.cc
+++ b/modules/mol/base/src/impl/query_impl.cc
@@ -988,7 +988,7 @@ Node* QueryImpl::ParseWithinExpr(QueryLexer& lexer) {
     // index of the query for later access.
     QueryImplP q(new QueryImpl(rhs));
     bracketed_expr_.push_back(q);
-    ParamType pt(WithinParam(bracketed_expr_.size()-1, rv*rv));
+    ParamType pt(WithinParam(bracketed_expr_.size()-1, rv*rv));    
     inversion_stack_.pop_back();    
     CompOP comp_op= COP_LE;
     if (inversion_stack_.back())