diff --git a/modules/mol/base/doc/entity.rst b/modules/mol/base/doc/entity.rst
index cf00a6b5e5069ce005a6c7b13776ee95becbe4ea..e2f1ab5713054daf5097abd6537d7859f58c4ac0 100644
--- a/modules/mol/base/doc/entity.rst
+++ b/modules/mol/base/doc/entity.rst
@@ -289,8 +289,11 @@ The Handle Classes
 
      Describes the type of the chain. Is one of enum ChainType:
 
-        ``CHAINTYPE_POLY``, ``CHAINTYPE_AA``, ``CHAINTYPE_NT``,
-        ``CHAINTYPE_UNKNOWN``, ``CHAINTYPE_N_CHAINTYPES``
+       ``CHAINTYPE_POLY``, ``CHAINTYPE_NON_POLY``, ``CHAINTYPE_WATER``,
+       ``CHAINTYPE_POLY_PEPTIDE_D``, ``CHAINTYPE_POLY_PEPTIDE_L``,
+       ``CHAINTYPE_POLY_DN``, ``CHAINTYPE_POLY_RN``, ``CHAINTYPE_POLY_SAC_D``,
+       ``CHAINTYPE_POLY_SAC_L``, ``CHAINTYPE_POLY_DN_RN``,
+       ``CHAINTYPE_UNKNOWN``, ``CHAINTYPE_N_CHAINTYPES``  
 
      Where ``CHAINTYPE_N_CHAINTYPES`` holds the number of different types
      available.
diff --git a/modules/mol/base/pymod/export_chain.cc b/modules/mol/base/pymod/export_chain.cc
index 3361c5fa3ca7e0510018800870c5dcea5e4fb219..117d1b2f64fb8d6ad44254cc55b212d66f94b168 100644
--- a/modules/mol/base/pymod/export_chain.cc
+++ b/modules/mol/base/pymod/export_chain.cc
@@ -109,11 +109,18 @@ void export_Chain()
 
   {
     enum_<ChainType>("ChainType")
-      .value("CHAINTYPE_POLY",         CHAINTYPE_POLY)
-      .value("CHAINTYPE_AA",           CHAINTYPE_AA)
-      .value("CHAINTYPE_NT",           CHAINTYPE_NT)
-      .value("CHAINTYPE_UNKNOWN",      CHAINTYPE_UNKNOWN)
-      .value("CHAINTYPE_N_CHAINTYPES", CHAINTYPE_N_CHAINTYPES)
+      .value("CHAINTYPE_POLY",           CHAINTYPE_POLY)
+      .value("CHAINTYPE_NON_POLY",       CHAINTYPE_NON_POLY)
+      .value("CHAINTYPE_WATER",          CHAINTYPE_WATER)
+      .value("CHAINTYPE_POLY_PEPTIDE_D", CHAINTYPE_POLY_PEPTIDE_D)
+      .value("CHAINTYPE_POLY_PEPTIDE_L", CHAINTYPE_POLY_PEPTIDE_L)
+      .value("CHAINTYPE_POLY_DN",        CHAINTYPE_POLY_DN)
+      .value("CHAINTYPE_POLY_RN",        CHAINTYPE_POLY_RN)
+      .value("CHAINTYPE_POLY_SAC_D",     CHAINTYPE_POLY_SAC_D)
+      .value("CHAINTYPE_POLY_SAC_L",     CHAINTYPE_POLY_SAC_L)
+      .value("CHAINTYPE_POLY_DN_RN",     CHAINTYPE_POLY_DN_RN)
+      .value("CHAINTYPE_UNKNOWN",        CHAINTYPE_UNKNOWN)
+      .value("CHAINTYPE_N_CHAINTYPES",   CHAINTYPE_N_CHAINTYPES)
       .export_values()
     ;
   }
diff --git a/modules/mol/base/src/chain_type.hh b/modules/mol/base/src/chain_type.hh
index b5961e846a29b9cb02361c33614156b73f708e29..0311ebffb71055a77b5f037b4606310628e68909 100644
--- a/modules/mol/base/src/chain_type.hh
+++ b/modules/mol/base/src/chain_type.hh
@@ -21,11 +21,19 @@
 
 /// \enum different kinds of chains
 typedef enum {
-  CHAINTYPE_POLY,         ///< chain name by author as in PDB
-  CHAINTYPE_AA,           ///< amino acid sequence
-  CHAINTYPE_NT,           ///< nucleotides
-  CHAINTYPE_UNKNOWN,      ///< guess what
-  CHAINTYPE_N_CHAINTYPES  ///< no. of chain types
+  CHAINTYPE_POLY,           ///< polymer
+  CHAINTYPE_NON_POLY,       ///< non-polymer
+  CHAINTYPE_WATER,          ///< water
+  CHAINTYPE_POLY_PEPTIDE_D, ///< (D) amino acid sequence
+  CHAINTYPE_POLY_PEPTIDE_L, ///< (L) amino acid sequence
+  CHAINTYPE_POLY_DN,        ///< polydeoxyribonucleotide
+  CHAINTYPE_POLY_RN,        ///< polyribonucleotide
+  CHAINTYPE_POLY_SAC_D,     ///< polysaccharide(D)
+  CHAINTYPE_POLY_SAC_L,     ///< polysaccharide(L)
+  CHAINTYPE_POLY_DN_RN,     ///<polydeoxyribonucleotide/ -ribonucleotide hybrid
+  CHAINTYPE_UNKNOWN,        ///< guess what
+  CHAINTYPE_N_CHAINTYPES    ///< no. of chain types
 } ChainType;
 
+
 #endif
diff --git a/modules/mol/base/tests/test_chain.cc b/modules/mol/base/tests/test_chain.cc
index da1e627b37232fd7fb16651066aaa7ea4f44f78f..c590ec5e22a0c99ce24791d35b756166a1e14503 100644
--- a/modules/mol/base/tests/test_chain.cc
+++ b/modules/mol/base/tests/test_chain.cc
@@ -211,10 +211,26 @@ BOOST_AUTO_TEST_CASE(chain_type)
    BOOST_CHECK(ch1.GetChainType() == CHAINTYPE_UNKNOWN);
    e.SetChainType(ch1, CHAINTYPE_POLY);
    BOOST_CHECK(ch1.GetChainType() == CHAINTYPE_POLY);
-   e.SetChainType(ch1, CHAINTYPE_AA);
-   BOOST_CHECK(ch1.GetChainType() == CHAINTYPE_AA);
-   e.SetChainType(ch1, CHAINTYPE_NT);
-   BOOST_CHECK(ch1.GetChainType() == CHAINTYPE_NT);
+   e.SetChainType(ch1, CHAINTYPE_NON_POLY);
+   BOOST_CHECK(ch1.GetChainType() == CHAINTYPE_NON_POLY);
+   e.SetChainType(ch1, CHAINTYPE_WATER);
+   BOOST_CHECK(ch1.GetChainType() == CHAINTYPE_WATER);
+   e.SetChainType(ch1, CHAINTYPE_POLY_PEPTIDE_D);
+   BOOST_CHECK(CHAINTYPE_POLY_PEPTIDE_D);
+   e.SetChainType(ch1, CHAINTYPE_POLY_PEPTIDE_L);
+   BOOST_CHECK(CHAINTYPE_POLY_PEPTIDE_L);
+   e.SetChainType(ch1, CHAINTYPE_POLY_DN);
+   BOOST_CHECK(CHAINTYPE_POLY_DN);
+   e.SetChainType(ch1, CHAINTYPE_POLY_RN);
+   BOOST_CHECK(CHAINTYPE_POLY_RN);
+   e.SetChainType(ch1, CHAINTYPE_POLY_SAC_D);
+   BOOST_CHECK(CHAINTYPE_POLY_SAC_D);
+   e.SetChainType(ch1, CHAINTYPE_POLY_SAC_L);
+   BOOST_CHECK(CHAINTYPE_POLY_SAC_L);
+   e.SetChainType(ch1, CHAINTYPE_POLY_DN_RN);
+   BOOST_CHECK(CHAINTYPE_POLY_DN_RN);
+   e.SetChainType(ch1, CHAINTYPE_N_CHAINTYPES);
+   BOOST_CHECK(CHAINTYPE_N_CHAINTYPES);
    e.SetChainType(ch1, CHAINTYPE_UNKNOWN);
    BOOST_CHECK(ch1.GetChainType() == CHAINTYPE_UNKNOWN);
 }