diff --git a/modules/mol/base/src/atom_base.cc b/modules/mol/base/src/atom_base.cc
index 482464768a96dbfd1f3195427e7e8cfafa6149cc..3dae54fb8ba14c64c08275463d9db148d7c001f6 100644
--- a/modules/mol/base/src/atom_base.cc
+++ b/modules/mol/base/src/atom_base.cc
@@ -102,6 +102,11 @@ String AtomBase::GetQualifiedName() const
   return Impl()->GetQualifiedName();
 }
 
+bool AtomBase::IsValid() const
+{
+  return Impl().get()!=0;
+}
+
 void AtomBase::CheckValidity() const 
 {
   if (! (impl_ && impl_->GetEntity()))
diff --git a/modules/mol/base/src/atom_base.hh b/modules/mol/base/src/atom_base.hh
index b69c8ceb006736354cc88e644adbc65bfd37f347..b30693b5bd8b164dea6593e1e361588af397b01a 100644
--- a/modules/mol/base/src/atom_base.hh
+++ b/modules/mol/base/src/atom_base.hh
@@ -57,7 +57,7 @@ public:
   operator bool() const { return this->IsValid(); }
   /// \brief check validity of handle
   /// \sa #operator bool()
-  bool IsValid() const { return Impl().get()!=0; }
+  bool IsValid() const;
   //@}
   friend class ConstGenericPropContainer<AtomBase>;  
   ///\brief Get atom name. 
diff --git a/modules/mol/base/src/chain_base.cc b/modules/mol/base/src/chain_base.cc
index 28263e7387f55bb96dbb95489a512b92d494db27..3221773490f6624ab0baf97762d01dd606a5803f 100644
--- a/modules/mol/base/src/chain_base.cc
+++ b/modules/mol/base/src/chain_base.cc
@@ -52,6 +52,11 @@ String ChainBase::GetDescription() const {
   return impl_->GetDescription();
 }
 
+bool ChainBase::IsValid() const
+{
+  return Impl().get()!=0;
+}
+
 void ChainBase::CheckValidity() const {
   if (! (impl_ && impl_->GetEntity()))
     throw InvalidHandle();
diff --git a/modules/mol/base/src/chain_base.hh b/modules/mol/base/src/chain_base.hh
index 0ab82a3dbaf784193d3ba09fe1e687af4f96eaeb..ec02a795f05584435b05644246eef0d043ab0d92 100644
--- a/modules/mol/base/src/chain_base.hh
+++ b/modules/mol/base/src/chain_base.hh
@@ -55,7 +55,7 @@ public:
   operator bool() const { return this->IsValid(); }
   /// \brief check validity of handle
   /// \sa #operator bool()
-  bool IsValid() const { return Impl().get()!=0; }
+  bool IsValid() const;
   //@}
   friend class ConstGenericPropContainer<ChainBase>;
   String GetName() const;
diff --git a/modules/mol/base/src/residue_base.cc b/modules/mol/base/src/residue_base.cc
index 01b996679065cb3ab483db9d6f437c9eba8b85b9..c227e090e1bc7b635a78fa894fa86d33e4afc423 100644
--- a/modules/mol/base/src/residue_base.cc
+++ b/modules/mol/base/src/residue_base.cc
@@ -156,6 +156,11 @@ const impl::ResidueImplPtr& ResidueBase::Impl() const
   return impl_;
 }
 
+bool ResidueBase::IsValid() const
+{
+  return Impl().get()!=0;
+}
+
 void ResidueBase::CheckValidity() const 
 {
   if (! (impl_ && impl_->GetEntity()))
diff --git a/modules/mol/base/src/residue_base.hh b/modules/mol/base/src/residue_base.hh
index 0011a962a4162b3a2382b46dcde52d492beb2d71..753fc139eacb259e1918c0afc4ad48c157395a42 100644
--- a/modules/mol/base/src/residue_base.hh
+++ b/modules/mol/base/src/residue_base.hh
@@ -81,7 +81,7 @@ public:
   operator bool() const { return this->IsValid(); }
   /// \brief check validity of handle
   /// \sa #operator bool()
-  bool IsValid() const { return Impl().get()!=0; }
+  bool IsValid() const;
   friend class ConstGenericPropContainer<ResidueBase>;
   /// \brief return residue number
   const ResNum& GetNumber() const;