diff --git a/modules/conop/src/conop.cc b/modules/conop/src/conop.cc
index 76273ce5f6612956bc5fd858a2634a306441161d..e21519d7cbbd22b05b4c318cfdc8b3af13da69c3 100644
--- a/modules/conop/src/conop.cc
+++ b/modules/conop/src/conop.cc
@@ -181,7 +181,7 @@ public:
   virtual bool VisitResidue(const mol::ResidueHandle& res)
   {
     String key=builder_->IdentifyResidue(res);
-    if (key=="UNK" && res.GetKey()!="UNK") {
+    if (key=="UNK" && res.GetKey()!="UNK" && res.GetKey()!="UNL") {
       unk_res_[res.GetKey()]+=1;
     }
     builder_->FillResidueProps(res);
diff --git a/modules/io/src/mol/chemdict_parser.cc b/modules/io/src/mol/chemdict_parser.cc
index 2668221bafab38c5f682497cbe416906c09756ad..4e52b087713971e27ce475f09db65efab63ff8ba 100644
--- a/modules/io/src/mol/chemdict_parser.cc
+++ b/modules/io/src/mol/chemdict_parser.cc
@@ -6,6 +6,10 @@ using namespace ost::conop;
   
 bool ChemdictParser::OnBeginData(const StringRef& data_name) 
 {    
+  if (data_name==StringRef("UNL",3)) {
+    compound_=CompoundPtr();
+    return false;    
+  }
   compound_.reset(new Compound(data_name.str()));
   compound_->SetDialect(dialect_);
   if (last_!=data_name[0]) {
@@ -119,7 +123,7 @@ void ChemdictParser::OnDataItem(const StarDataItem& item)
 
 void ChemdictParser::OnEndData()
 {
-  if (insert_) {
+  if (insert_ && compound_) {
     if (compound_->GetAtomSpecs().empty()) {
       compound_->AddAtom(atom_);
     }