diff --git a/modules/conop/pymod/export_compound.cc b/modules/conop/pymod/export_compound.cc
index ae93c67271d8cbae8a34626579940e00ef95d327..05f27a82e01dcb1f969a1c43a44ce875490cc148 100644
--- a/modules/conop/pymod/export_compound.cc
+++ b/modules/conop/pymod/export_compound.cc
@@ -74,6 +74,11 @@ CompoundPtr find_compound(CompoundLibPtr comp_lib,
   return comp_lib->FindCompound(tlc, tr_dialect(dialect));
 }
 
+String get_creation_date(CompoundLibPtr comp_lib)
+{
+  return comp_lib->GetCreationDate().ToString();
+}
+
 }
 void export_Compound() {
 
@@ -130,6 +135,8 @@ void export_Compound() {
     .def("FindCompound", &find_compound, 
          (arg("tlc"), arg("dialect")="PDB"))
     .def("ClearCache", &CompoundLib::ClearCache)
+    .def("GetOSTVersionUsed", &CompoundLib::GetOSTVersionUsed)
+    .def("GetCreationDate", &get_creation_date, (arg("comp_lib")))
   ;
   
   class_<AtomSpecList>("AtomSpecList", init<>())
diff --git a/modules/conop/src/chemdict_tool.cc b/modules/conop/src/chemdict_tool.cc
index 449d22aac507fbf618e14d233377fe2c096e233e..9cd043f00fd6a76875447a4908d73401f8d709fe 100644
--- a/modules/conop/src/chemdict_tool.cc
+++ b/modules/conop/src/chemdict_tool.cc
@@ -88,9 +88,10 @@ int main(int argc, char const *argv[])
   assert(compound_lib);
   conop::CompoundLibPtr in_mem_lib=in_mem ? compound_lib :
                                    compound_lib->Copy(":memory:");
-  compound_lib.reset();  
+  compound_lib.reset();
   cdp.SetCompoundLib(in_mem_lib);
   cdp.Parse();
+  in_mem_lib->SetChemLibInfo();
   in_mem_lib->Copy(argv[3]);  
   return 0;
 }
diff --git a/modules/conop/src/compound_lib.cc b/modules/conop/src/compound_lib.cc
index 61c8fc11ad11986fffcd49ae1789ae38fdc7db88..63fd58bcf5094df4a908ff5c7ff14f63d15d875a 100644
--- a/modules/conop/src/compound_lib.cc
+++ b/modules/conop/src/compound_lib.cc
@@ -26,7 +26,8 @@
 #include <boost/format.hpp>
 #include <ost/log.hh>
 #include "compound_lib.hh"
-
+#include <ost/version.hh>
+#include <ost/string_ref.hh>
 
 using boost::format;
 
@@ -34,41 +35,44 @@ namespace ost { namespace conop {
 
 namespace {
 
-const char* CREATE_CMD[]={                                                         
+const char* CREATE_CMD[]={
+"CREATE TABLE IF NOT EXISTS chemlib_info (                                      "
+"  creation_date     TIMESTAMP,                                                 "
+"  ost_version_used  VARCHAR(64) NOT NULL);",
 "CREATE TABLE IF NOT EXISTS chem_compounds (                                    "
-"  id              INTEGER PRIMARY KEY AUTOINCREMENT,                           "
-"  tlc             VARCHAR(3) NOT NULL,                                         "
-"  olc             VARCHAR(1) NOT NULL,                                         "
-"  dialect         VARCHAR(1) NOT NULL,                                         "
-"  chem_class      VARCHAR(1),                                                  "
-"  chem_type       VARCHAR(1),                                                  "
-"  formula         VARCHAR(64) NOT NULL,                                        "
-"  pdb_initial     TIMESTAMP,                                                   "
-"  pdb_modified    TIMESTAMP,                                                   "
-"  name            VARCHAR(256)                                                 " 
+"  id                INTEGER PRIMARY KEY AUTOINCREMENT,                         "
+"  tlc               VARCHAR(3) NOT NULL,                                       "
+"  olc               VARCHAR(1) NOT NULL,                                       "
+"  dialect           VARCHAR(1) NOT NULL,                                       "
+"  chem_class        VARCHAR(1),                                                "
+"  chem_type         VARCHAR(1),                                                "
+"  formula           VARCHAR(64) NOT NULL,                                      "
+"  pdb_initial       TIMESTAMP,                                                 "
+"  pdb_modified      TIMESTAMP,                                                 "
+"  name              VARCHAR(256)                                               " 
 ");",
 " CREATE UNIQUE INDEX IF NOT EXISTS commpound_tlc_index ON chem_compounds       "
 "                                  (tlc, dialect)",
 "CREATE TABLE IF NOT EXISTS atoms (                                             "
-" id              INTEGER PRIMARY KEY AUTOINCREMENT,                            "
-" compound_id     INTEGER REFERENCES chem_compounds (id) ON DELETE CASCADE,     "
-" name            VARCHAR(4) NOT NULL,                                          "
-" alt_name        VARCHAR(4) NOT NULL,                                          "
-" element         VARCHAR(2) NOT NULL,                                          "
-" is_aromatic     VARCHAR(1) NOT NULL,                                          "
-" stereo_conf     VARCHAR(1) NOT NULL,                                          "
-" is_leaving      VARCHAR(1) NOT NULL,                                          "
-" ordinal         INT                                                           "
+" id                 INTEGER PRIMARY KEY AUTOINCREMENT,                         "
+" compound_id        INTEGER REFERENCES chem_compounds (id) ON DELETE CASCADE,  "
+" name               VARCHAR(4) NOT NULL,                                       "
+" alt_name           VARCHAR(4) NOT NULL,                                       "
+" element            VARCHAR(2) NOT NULL,                                       "
+" is_aromatic        VARCHAR(1) NOT NULL,                                       "
+" stereo_conf        VARCHAR(1) NOT NULL,                                       "
+" is_leaving         VARCHAR(1) NOT NULL,                                       "
+" ordinal            INT                                                        "
 ");",
 " CREATE INDEX IF NOT EXISTS atom_name_index ON atoms                           "
 "                                  (compound_id, name, alt_name)",
 " CREATE TABLE IF NOT EXISTS bonds  (                                           "
-"   id              INTEGER PRIMARY KEY AUTOINCREMENT,                          "
-"   compound_id     INTEGER REFERENCES chem_compounds (id) ON DELETE CASCADE,   "
-"   atom_one        INTEGER REFERENCES atoms (id) ON DELETE CASCADE,            "
-"   atom_two        INTEGER REFERENCES atoms (id) ON DELETE CASCADE,            "
-"   bond_order      INT,                                                        "
-"   stereo_conf     VARCHAR(1) NOT NULL                                         "
+"   id               INTEGER PRIMARY KEY AUTOINCREMENT,                         "
+"   compound_id      INTEGER REFERENCES chem_compounds (id) ON DELETE CASCADE,  "
+"   atom_one         INTEGER REFERENCES atoms (id) ON DELETE CASCADE,           "
+"   atom_two         INTEGER REFERENCES atoms (id) ON DELETE CASCADE,           "
+"   bond_order       INT,                                                       "
+"   stereo_conf      VARCHAR(1) NOT NULL                                        "
 " );",
 " CREATE INDEX IF NOT EXISTS bond_index ON bonds (compound_id)",
 " CREATE TRIGGER delete_related_objects                                         "
@@ -93,8 +97,104 @@ const char* INSERT_BOND_STATEMENT="insert into bonds
 "        (compound_id, atom_one, atom_two, bond_order, stereo_conf)             "
 " VALUES (?, ?, ?, ?, ?)";
 
+const char* INSERT_CHEMLIB_INFO_STATEMENT="insert into chemlib_info             "
+"        (creation_date, ost_version_used)                                      "
+" VALUES (DATE(?), ?)";
+
+}
+
 
+void CompoundLib::SetChemLibInfo(void){
+  sqlite3_stmt* stmt=NULL;
+  //~ if (!conn_) {
+    //~ LOG_ERROR(sqlite3_errmsg("Connection to DB not made"));
+  //~ }
+  int retval=sqlite3_prepare_v2(conn_, INSERT_CHEMLIB_INFO_STATEMENT, 
+                                strlen(INSERT_CHEMLIB_INFO_STATEMENT), &stmt, NULL);
+  time_t rawtime;
+  struct tm * timeinfo;
+  time ( &rawtime );
+  timeinfo = localtime ( &rawtime );
+  Date date = Date(1900+timeinfo->tm_year, 1+timeinfo->tm_mon, timeinfo->tm_mday);
+  String date_str=date.ToString();
+  if (SQLITE_OK==retval) {
 
+    sqlite3_bind_text(stmt, 1, date_str.c_str(), 
+                      strlen(date_str.c_str()), NULL);
+    const char* ost_version = OST_VERSION_STRING;
+    sqlite3_bind_text(stmt, 2, ost_version, 
+                      strlen(ost_version), NULL);
+  } else {
+    std::cout << "failed" <<std::endl;
+  }
+  retval=sqlite3_step(stmt);
+  if (SQLITE_DONE!=retval) {
+    if (sqlite3_errcode(conn_)==SQLITE_CONSTRAINT) {
+      LOG_ERROR("chemlib info already exists");
+    } else {
+      LOG_ERROR(sqlite3_errmsg(conn_));
+    }
+  }
+  sqlite3_finalize(stmt);  
+}
+
+Date CompoundLib::GetCreationDate(void){
+  
+  String query="SELECT creation_date FROM chemlib_info";
+  sqlite3_stmt* stmt;
+  int retval=sqlite3_prepare_v2(conn_, query.c_str(), 
+                                static_cast<int>(query.length()),
+                                &stmt, NULL);
+  if (SQLITE_OK==retval) {
+    int ret=sqlite3_step(stmt);
+    if (SQLITE_DONE==ret) {
+      sqlite3_finalize(stmt);        
+      return Date();
+    }
+    if (SQLITE_ROW==ret) {
+      const char* strr = reinterpret_cast<const char*>(sqlite3_column_text(stmt, 0));
+      Date date = Date::FromString(StringRef(strr, strlen(strr))); 
+      sqlite3_finalize(stmt);
+      return date;   
+    }
+    assert(SQLITE_DONE==sqlite3_step(stmt));
+  } else {
+    LOG_ERROR("ERROR: " << sqlite3_errmsg(conn_));
+    sqlite3_finalize(stmt);      
+    return Date();
+  }
+  sqlite3_finalize(stmt);    
+  return Date();
+}
+
+
+String CompoundLib::GetOSTVersionUsed(){
+  String query="SELECT ost_version_used FROM chemlib_info";
+  sqlite3_stmt* stmt;
+  String version;
+
+  int retval=sqlite3_prepare_v2(conn_, query.c_str(), 
+                                static_cast<int>(query.length()),
+                                &stmt, NULL);
+  if (SQLITE_OK==retval) {
+    int ret=sqlite3_step(stmt);
+    if (SQLITE_DONE==ret) {
+      sqlite3_finalize(stmt);        
+      return String();
+    }
+    if (SQLITE_ROW==ret) {
+      version = String(reinterpret_cast<const char*>(sqlite3_column_text(stmt, 0))); 
+      sqlite3_finalize(stmt);
+      return version;   
+    }
+    assert(SQLITE_DONE==sqlite3_step(stmt));
+  } else {
+    LOG_ERROR("ERROR: " << sqlite3_errmsg(conn_) << " - your compound library might be outdated!");
+    sqlite3_finalize(stmt);      
+    return String();
+  }
+  sqlite3_finalize(stmt);    
+  return String();
 }
 
 
@@ -257,6 +357,9 @@ CompoundLibPtr CompoundLib::Load(const String& database, bool readonly)
                             static_cast<int>(aq.length()),
                             &stmt, NULL);
   lib->name_available_ = retval==SQLITE_OK;
+
+  lib->creation_date_ = lib->GetCreationDate();
+  lib->ost_version_used_ = lib->GetOSTVersionUsed();
   return lib;
 }
 
diff --git a/modules/conop/src/compound_lib.hh b/modules/conop/src/compound_lib.hh
index faaf6a051f7bb14bfaab9bbde95c7dedd98c0316..c79463a6f28857e813c7c0e57050d4459a7714f9 100644
--- a/modules/conop/src/compound_lib.hh
+++ b/modules/conop/src/compound_lib.hh
@@ -42,18 +42,24 @@ public:
   ~CompoundLib();
   
   CompoundPtr FindCompound(const String& id, Compound::Dialect dialect);
+  Date GetCreationDate(void);
+  String GetOSTVersionUsed(void);
   void AddCompound(const CompoundPtr& compound);
   CompoundLibPtr Copy(const String& filename) const;
   void ClearCache();
+  void SetChemLibInfo(void);
 private:
     CompoundLib();
+
     void LoadAtomsFromDB(CompoundPtr comp, int pk);
     void LoadBondsFromDB(CompoundPtr comp, int pk);    
 private:
-  CompoundMap  compound_cache_;
-  sqlite3*     conn_;
-  bool         chem_type_available_; // weather pdbx_type is available in db
-  bool         name_available_; // weather name is available in db
+  CompoundMap       compound_cache_;
+  sqlite3*          conn_;
+  bool              chem_type_available_; // weather pdbx_type is available in db
+  bool              name_available_; // weather name is available in db
+  Date              creation_date_;
+  String            ost_version_used_;
 };
 
 }}