diff --git a/modules/mol/base/src/atom_base.cc b/modules/mol/base/src/atom_base.cc
index 3dae54fb8ba14c64c08275463d9db148d7c001f6..24f3bd7d48af88c3c461ed58c0433bd900862e10 100644
--- a/modules/mol/base/src/atom_base.cc
+++ b/modules/mol/base/src/atom_base.cc
@@ -104,12 +104,12 @@ String AtomBase::GetQualifiedName() const
 
 bool AtomBase::IsValid() const
 {
-  return Impl().get()!=0;
+  return Impl().get()!=0 && impl_->GetEntity();
 }
 
 void AtomBase::CheckValidity() const 
 {
-  if (! (impl_ && impl_->GetEntity()))
+  if (! IsValid())
     throw InvalidHandle();
 }
 
diff --git a/modules/mol/base/src/chain_base.cc b/modules/mol/base/src/chain_base.cc
index 3221773490f6624ab0baf97762d01dd606a5803f..db9b1346bece9dd2bdec3c19a585b1df3f6d0937 100644
--- a/modules/mol/base/src/chain_base.cc
+++ b/modules/mol/base/src/chain_base.cc
@@ -54,11 +54,11 @@ String ChainBase::GetDescription() const {
 
 bool ChainBase::IsValid() const
 {
-  return Impl().get()!=0;
+  return Impl().get()!=0 && impl_->GetEntity();
 }
 
 void ChainBase::CheckValidity() const {
-  if (! (impl_ && impl_->GetEntity()))
+  if (! IsValid())
     throw InvalidHandle();
 }
 
diff --git a/modules/mol/base/src/residue_base.cc b/modules/mol/base/src/residue_base.cc
index c227e090e1bc7b635a78fa894fa86d33e4afc423..854b4b1aacdb51acbfc0aa7e341bb02acda9d439 100644
--- a/modules/mol/base/src/residue_base.cc
+++ b/modules/mol/base/src/residue_base.cc
@@ -158,12 +158,12 @@ const impl::ResidueImplPtr& ResidueBase::Impl() const
 
 bool ResidueBase::IsValid() const
 {
-  return Impl().get()!=0;
+  return Impl().get()!=0 && impl_->GetEntity();
 }
 
 void ResidueBase::CheckValidity() const 
 {
-  if (! (impl_ && impl_->GetEntity()))
+  if (! IsValid())
     throw InvalidHandle();
 }