Index: src/Parser/PdbParser.cpp
===================================================================
--- src/Parser/PdbParser.cpp	(revision f6ba43405488e9595322b8bef96c7c7fb1191d67)
+++ src/Parser/PdbParser.cpp	(revision 8990879f0d70e37254ee9c7844475862be401b8a)
@@ -260,6 +260,10 @@
         }
         // change element and charge if changed
-        if (atomInfo.get<std::string>(PdbKey::element) != (*atomIt)->getType()->getSymbol())
-          atomInfo.set(PdbKey::element, (*atomIt)->getType()->getSymbol());
+        if (atomInfo.get<std::string>(PdbKey::element) != (*atomIt)->getType()->getSymbol()) {
+          std::string symbol = (*atomIt)->getType()->getSymbol();
+          if ((symbol[1] >= 'a') && (symbol[1] <= 'z'))
+            symbol[1] = (symbol[1] - 'a') + 'A';
+          atomInfo.set(PdbKey::element, symbol);
+        }
 
         // finally save the line
@@ -408,5 +412,6 @@
 size_t PdbParser::getSerial(const size_t atomid) const
 {
-  ASSERT(atomIdMap.find(atomid) != atomIdMap.end(), "PdbParser::getAtomId: atomid not present in Map.");
+  ASSERT(atomIdMap.find(atomid) != atomIdMap.end(),
+      "PdbParser::getSerial() - atomid "+toString(atomid)+" not present in Map.");
   return (atomIdMap.find(atomid)->second);
 }
@@ -570,6 +575,10 @@
     newAtom->setPosition(tempVector);
     // set element
+    std::string value = atomInfo.get<std::string>(PdbKey::element);
+    // make second character lower case if not
+    if ((value[1] >= 'A') && (value[1] <= 'Z'))
+      value[1] = (value[1] - 'A') + 'a';
     const element *elem = World::getInstance().getPeriode()
-        ->FindElement(atomInfo.get<std::string>(PdbKey::element));
+        ->FindElement(value);
     ASSERT(elem != NULL,
         "PdbParser::readAtomDataLine() - element "+atomInfo.get<std::string>(PdbKey::element)+" is unknown!");
Index: tests/regression/Makefile.am
===================================================================
--- tests/regression/Makefile.am	(revision f6ba43405488e9595322b8bef96c7c7fb1191d67)
+++ tests/regression/Makefile.am	(revision 8990879f0d70e37254ee9c7844475862be401b8a)
@@ -97,4 +97,5 @@
 	$(srcdir)/Parser/Pcp/testsuite-parser-pcp-multiple-timesteps.at \
 	$(srcdir)/Parser/Pcp/testsuite-parser-pcp-save.at \
+	$(srcdir)/Parser/Pdb/testsuite-parser-pdb-capital_letters_element.at \
 	$(srcdir)/Parser/Pdb/testsuite-parser-pdb-empty.at \
 	$(srcdir)/Parser/Pdb/testsuite-parser-pdb-load.at \
Index: tests/regression/Parser/Pdb/post/Symbol_CapitalLetters.pdb
===================================================================
--- tests/regression/Parser/Pdb/post/Symbol_CapitalLetters.pdb	(revision 8990879f0d70e37254ee9c7844475862be401b8a)
+++ tests/regression/Parser/Pdb/post/Symbol_CapitalLetters.pdb	(revision 8990879f0d70e37254ee9c7844475862be401b8a)
@@ -0,0 +1,4 @@
+REMARK created by molecuilder on Sat Apr 30 14:36:53 2011, time step 0
+HETATM    1 MN  0MN  D1        -14.597  17.527  29.038  1.00 14.84          MN 0
+HETATM    2 CA  0CA  D1        -14.820  21.125  26.843  1.00  7.52          CA 0
+END
Index: tests/regression/Parser/Pdb/pre/Symbol_CapitalLetters.pdb
===================================================================
--- tests/regression/Parser/Pdb/pre/Symbol_CapitalLetters.pdb	(revision 8990879f0d70e37254ee9c7844475862be401b8a)
+++ tests/regression/Parser/Pdb/pre/Symbol_CapitalLetters.pdb	(revision 8990879f0d70e37254ee9c7844475862be401b8a)
@@ -0,0 +1,3 @@
+HETATM 7383 MN    MN D 238     -14.597  17.527  29.038  1.00 14.84          MN  
+HETATM 7384 CA    CA D 239     -14.820  21.125  26.843  1.00  7.52          CA
+END
Index: tests/regression/Parser/Pdb/testsuite-parser-pdb-capital_letters_element.at
===================================================================
--- tests/regression/Parser/Pdb/testsuite-parser-pdb-capital_letters_element.at	(revision 8990879f0d70e37254ee9c7844475862be401b8a)
+++ tests/regression/Parser/Pdb/testsuite-parser-pdb-capital_letters_element.at	(revision 8990879f0d70e37254ee9c7844475862be401b8a)
@@ -0,0 +1,10 @@
+### parsing pdb
+
+AT_SETUP([Parser - capital letters for symbol in pdb])
+AT_KEYWORDS([parser,load,pdb,symbol,element])
+
+AT_CHECK([../../molecuilder -i Symbol_CapitalLetters.pdb -o pdb -l ${abs_top_srcdir}/tests/regression/Parser/Pdb/pre/Symbol_CapitalLetters.pdb], 0, [stdout], [ignore])
+AT_CHECK([fgrep "MnCa" stdout], 0, [ignore], [ignore])
+AT_CHECK([file=Symbol_CapitalLetters.pdb; diff -I '.*created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Parser/Pdb/post/Symbol_CapitalLetters.pdb], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/regression/Parser/testsuite-parser.at
===================================================================
--- tests/regression/Parser/testsuite-parser.at	(revision f6ba43405488e9595322b8bef96c7c7fb1191d67)
+++ tests/regression/Parser/testsuite-parser.at	(revision 8990879f0d70e37254ee9c7844475862be401b8a)
@@ -24,4 +24,5 @@
 m4_include([Parser/Pdb/testsuite-parser-pdb-save.at])
 m4_include([Parser/Pdb/testsuite-parser-pdb-with-conects.at])
+m4_include([Parser/Pdb/testsuite-parser-pdb-capital_letters_element.at])
 
 # parsing tremolo
