diff --git a/modules/conop/src/chemdict_tool.cc b/modules/conop/src/chemdict_tool.cc
index 79b36b7b1dd6c29397bdf8cc31753488e15ff348..865425d8c75a7b3a9437f38d0bd753dc783ee465 100644
--- a/modules/conop/src/chemdict_tool.cc
+++ b/modules/conop/src/chemdict_tool.cc
@@ -140,12 +140,23 @@ public:
       } else if (item.GetName()==StringRef("pdbx_modified_date", 18)) {
         compound_->SetModificationDate(conop::Date::FromString(item.GetValue()));
       }
+    } else if (item.GetName()==StringRef("atom_id", 7)) {
+      atom_.name=item.GetValue().str();
+    } else if (item.GetName()==StringRef("alt_atom_id", 11)) {
+      atom_.alt_name=item.GetValue().str();
+    } else if (item.GetName()==StringRef("type_symbol", 11)) {
+      atom_.element=item.GetValue().str();
+    } else if (item.GetName()==StringRef("pdbx_ordinal", 12)) {
+      atom_.ordinal=item.GetValue().to_int().second-1;
     }
   }
   
   virtual void OnEndData()
   {
     if (insert_) {
+      if (compound_->GetAtomSpecs().empty()) {
+        compound_->AddAtom(atom_);
+      }
       lib_->AddCompound(compound_);      
     }
   }
@@ -176,6 +187,7 @@ private:
   static std::map<String, mol::ChemClass> tm_;  
   std::map<String, int>                   atom_map_;
   LoopType                                loop_type_;  
+  conop::AtomSpec                         atom_;
 };
 
 std::map<String, mol::ChemClass> ChemDictParser::tm_=std::map<String, mol::ChemClass>();