diff --git a/modules/mol/base/src/impl/entity_impl.cc b/modules/mol/base/src/impl/entity_impl.cc
index ebd7a346be3cfee75377a6616fd5c7360e17a567..096db3ceeb0ce3552d82424bc82dfd5bce85914f 100644
--- a/modules/mol/base/src/impl/entity_impl.cc
+++ b/modules/mol/base/src/impl/entity_impl.cc
@@ -382,6 +382,11 @@ ResidueImplPtr EntityImpl::CreateResidue(const ChainImplPtr& cp,
 
 ChainImplPtr EntityImpl::InsertChain(const String& cname)
 {
+  ChainImplMap::iterator i=chain_map_.find(cname);
+  if (i!=chain_map_.end()) {
+    throw IntegrityError("Can't insert chain. A chain with name '"+cname+
+                         "' already exists");
+  }
 #if MAKE_SHARED_AVAILABLE
   ChainImplPtr cp=boost::make_shared<ChainImpl>(shared_from_this(), cname);
 #else