diff --git a/modules/conop/src/builder.cc b/modules/conop/src/builder.cc
index 50b7d54f0b8d9ecc5882b706f79c3760bb54fe17..9fce604d833a0d25508c231360a95642a48e5152 100644
--- a/modules/conop/src/builder.cc
+++ b/modules/conop/src/builder.cc
@@ -147,7 +147,11 @@ String Builder::GuessAtomElement(const String& aname, bool hetatm)
       if(ele==l3[i]) return ele;
     }
   }
-  return String(1, aname[0]);
+  size_t i=0;
+  while (i<aname.size() && isdigit(aname[i])) {
+    ++i;
+  }
+  return i<aname.size() ? String(1, aname[i]) : "";
 }
 
 bool Builder::AreResiduesConsecutive(const mol::ResidueHandle& r1, 
diff --git a/modules/conop/tests/test_builder.cc b/modules/conop/tests/test_builder.cc
index 0c0c54cf0357931f674235d381a627404c709406..4ba860bb1ecad1c498a7b7a42caba41138d3df03 100644
--- a/modules/conop/tests/test_builder.cc
+++ b/modules/conop/tests/test_builder.cc
@@ -34,14 +34,23 @@ BOOST_AUTO_TEST_CASE( test_builder )
 {
   BOOST_CHECK_EQUAL(Builder::GuessAtomElement("CA", false), "C");
   BOOST_CHECK_EQUAL(Builder::GuessAtomElement("CB", false), "C");
-  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("N", false), "N");  
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("N", false), "N");
   BOOST_CHECK_EQUAL(Builder::GuessAtomElement("O", false), "O");
   BOOST_CHECK_EQUAL(Builder::GuessAtomElement("CG1", false), "C");
   BOOST_CHECK_EQUAL(Builder::GuessAtomElement("CG2", false), "C");
-  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("OG1", false), "O");  
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("OG1", false), "O");
   BOOST_CHECK_EQUAL(Builder::GuessAtomElement("SG", false), "S");
-  
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("1HA", false), "H");
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("1HB", false), "H");
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("1DA", false), "D");
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("1DB", false), "D");
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("1HA", true), "H");
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("1HB", true), "H");
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("1DA", true), "D");
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("1DB", true), "D");  
   BOOST_CHECK_EQUAL(Builder::GuessAtomElement("CA", true), "CA");
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("11", true), "");
+  BOOST_CHECK_EQUAL(Builder::GuessAtomElement("11", false), "");  
 }
 
 BOOST_AUTO_TEST_SUITE_END()