diff --git a/Database/IOVDbSvc/CMakeLists.txt b/Database/IOVDbSvc/CMakeLists.txt
index 03cb4ce438e28b52c2a0c2e456f10d6d40d1ba65..d82a9365547c00c65748462fbd3e9db6d5bf5139 100644
--- a/Database/IOVDbSvc/CMakeLists.txt
+++ b/Database/IOVDbSvc/CMakeLists.txt
@@ -48,7 +48,14 @@ atlas_add_test( IOVDbSvc_Boost_test
    INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${COOL_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}
    LINK_LIBRARIES ${Boost_LIBRARIES} ${COOL_LIBRARIES} ${ROOT_LIBRARIES}
    GaudiKernel AthenaKernel CxxUtils TestTools StoreGateLib EventInfoMgtLib
-   LOG_IGNORE_PATTERN "^HistogramPersis.* INFO|^IOVSvc +DEBUG|^IOVSvcTool +DEBUG" )
+   POST_EXEC_SCRIPT "nopost.sh" )
+   
+atlas_add_test( IOVDbSvc_InvalidMarkup_test
+   SOURCES test/IOVDbSvc_InvalidMarkup_test.cxx
+   INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${COOL_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}
+   LINK_LIBRARIES ${Boost_LIBRARIES} ${COOL_LIBRARIES} ${ROOT_LIBRARIES}
+   GaudiKernel AthenaKernel CxxUtils TestTools StoreGateLib EventInfoMgtLib
+   POST_EXEC_SCRIPT "nopost.sh" )
 
 atlas_add_test( IOVDbConn_test
    SOURCES test/IOVDbConn_test.cxx src/IOVDbConn.cxx
@@ -113,7 +120,6 @@ atlas_add_test( IOVDbFolder_test
    GaudiKernel AthenaKernel AthenaBaseComps StoreGateLib SGTools CxxUtils
    TestTools CoraCool AthenaPoolUtilities GeoModelInterfaces
    IOVDbMetaDataToolsLib IOVDbDataModel EventInfoMgtLib
-   LOG_IGNORE_PATTERN "^HistogramPersis.* INFO|^IOVSvc +DEBUG|^IOVSvcTool +DEBUG"
    POST_EXEC_SCRIPT "nopost.sh" )
 
 atlas_add_test( IovStore_test
@@ -160,7 +166,6 @@ atlas_add_test( Cool2Json_test
    LINK_LIBRARIES ${Boost_LIBRARIES} ${COOL_LIBRARIES} ${CORAL_LIBRARIES}
    ${ROOT_LIBRARIES} GaudiKernel AthenaKernel StoreGateLib CoraCool
    AthenaPoolUtilities CxxUtils TestTools
-   LOG_IGNORE_PATTERN "^HistogramPersis.* INFO|^IOVSvc +DEBUG|^IOVSvcTool +DEBUG"
    POST_EXEC_SCRIPT "nopost.sh" )
 
 atlas_add_test( CrestFunctions_test
diff --git a/Database/IOVDbSvc/share/BasicFolder_test.ref b/Database/IOVDbSvc/share/BasicFolder_test.ref
deleted file mode 100644
index 215d0ce5f72d26710e732be68d62226ca9e7d4cb..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/BasicFolder_test.ref
+++ /dev/null
@@ -1,4 +0,0 @@
-Running 9 test cases...
-
-*** No errors detected
-
\ No newline at end of file
diff --git a/Database/IOVDbSvc/share/Cool2Json_test.ref b/Database/IOVDbSvc/share/Cool2Json_test.ref
deleted file mode 100644
index ab847a0e336cbf6658198441e041de1d359d38a6..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/Cool2Json_test.ref
+++ /dev/null
@@ -1,20 +0,0 @@
-Running 3 test cases...
-
-
-Initializing Gaudi ApplicationMgr using job opts /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # =======> /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # (1,1): ApplicationMgr.OutputLevel = 5
-JobOptionsSvc        INFO # (2,1): ApplicationMgr.CreateSvc += ["StoreGateSvc/DetectorStore"]
-JobOptionsSvc        INFO # (3,1): IOVDbSvc.Folders = ["/key1"]
-JobOptionsSvc        INFO # (4,1): EventPersistencySvc.CnvServices += ["AthenaPoolCnvSvc"]
-JobOptionsSvc        INFO # (5,1): MessageSvc.OutputLevel = 5
-JobOptionsSvc        INFO Job options successfully read in from /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-ApplicationMgr    SUCCESS 
-====================================================================================================================================
-                                                   Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99)
-                                          running on karma on Sun Jun 30 21:12:54 2019
-====================================================================================================================================
-ApplicationMgr Ready
-
-*** No errors detected
-
\ No newline at end of file
diff --git a/Database/IOVDbSvc/share/FolderTypes_test.ref b/Database/IOVDbSvc/share/FolderTypes_test.ref
deleted file mode 100644
index 0bb37e5e4fb6274db0ca7a70747fcf29c1fcbf9d..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/FolderTypes_test.ref
+++ /dev/null
@@ -1,19 +0,0 @@
-Running 2 test cases...
-
-
-Initializing Gaudi ApplicationMgr using job opts /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # =======> /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # (1,1): ApplicationMgr.OutputLevel = 5
-JobOptionsSvc        INFO # (2,1): ApplicationMgr.CreateSvc += ["StoreGateSvc/DetectorStore"]
-JobOptionsSvc        INFO # (3,1): IOVDbSvc.Folders = ["/key1"]
-JobOptionsSvc        INFO # (4,1): EventPersistencySvc.CnvServices += ["AthenaPoolCnvSvc"]
-JobOptionsSvc        INFO # (5,1): MessageSvc.OutputLevel = 5
-JobOptionsSvc        INFO Job options successfully read in from /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-ApplicationMgr    SUCCESS 
-====================================================================================================================================
-                                                   Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99)
-                                          running on karma on Sun Mar  3 18:21:01 2019
-====================================================================================================================================
-ApplicationMgr Ready
-
-*** No errors detected
diff --git a/Database/IOVDbSvc/share/IOVDbConn_test.ref b/Database/IOVDbSvc/share/IOVDbConn_test.ref
deleted file mode 100644
index 28037a0591f47045dcfac63f7383f88b52256677..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/IOVDbConn_test.ref
+++ /dev/null
@@ -1,22 +0,0 @@
-Running 2 test cases...
-
-
-Initializing Gaudi ApplicationMgr using job opts /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # =======> /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # (1,1): ApplicationMgr.OutputLevel = 5
-JobOptionsSvc        INFO # (2,1): ApplicationMgr.CreateSvc += ["StoreGateSvc/DetectorStore"]
-JobOptionsSvc        INFO # (3,1): IOVDbSvc.Folders = ["/key1"]
-JobOptionsSvc        INFO # (4,1): EventPersistencySvc.CnvServices += ["AthenaPoolCnvSvc"]
-JobOptionsSvc        INFO # (5,1): MessageSvc.OutputLevel = 5
-JobOptionsSvc        INFO Job options successfully read in from /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-ApplicationMgr    SUCCESS 
-====================================================================================================================================
-                                                   Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99)
-                                          running on karma on Mon Mar  4 16:55:46 2019
-====================================================================================================================================
-ApplicationMgr Ready
-IOVDbConn_Boost...   INFO Opening COOL connection for sqlite://;schema=IOVDbConnTest.db;dbname=OFLP200
-IOVDbConn_Boost...   INFO *** COOL  exception caught: Connection on "sqlite_file:IOVDbConnTest.db" cannot be established ( CORAL : "ConnectionPool::getSessionFromNewConnection" from "CORAL/Services/ConnectionService" )
-IOVDbConn_Boost...   INFO Create a new conditions database: sqlite://;schema=IOVDbConnTest.db;dbname=OFLP200
-
-*** No errors detected
diff --git a/Database/IOVDbSvc/share/IOVDbCoolFunctions_test.ref b/Database/IOVDbSvc/share/IOVDbCoolFunctions_test.ref
deleted file mode 100644
index 434668d839bab0aaa28cc2d087f31a8ced5caa2d..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/IOVDbCoolFunctions_test.ref
+++ /dev/null
@@ -1,3 +0,0 @@
-Running 7 test cases...
-
-*** No errors detected
diff --git a/Database/IOVDbSvc/share/IOVDbFolder_test.ref b/Database/IOVDbSvc/share/IOVDbFolder_test.ref
deleted file mode 100644
index 28c69fff4086047c9683444ebbdadab511ee05c0..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/IOVDbFolder_test.ref
+++ /dev/null
@@ -1,21 +0,0 @@
-Running 2 test cases...
-
-
-Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-dbg/x86_64-centos7-gcc8-dbg/jobOptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-dbg/x86_64-centos7-gcc8-dbg/jobOptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # (1,1): ApplicationMgr.OutputLevel = 5
-JobOptionsSvc        INFO # (2,1): ApplicationMgr.CreateSvc += ["StoreGateSvc/DetectorStore"]
-JobOptionsSvc        INFO # (3,1): IOVDbSvc.Folders = ["/key1"]
-JobOptionsSvc        INFO # (4,1): EventPersistencySvc.CnvServices += ["AthenaPoolCnvSvc"]
-JobOptionsSvc        INFO # (5,1): MessageSvc.OutputLevel = 5
-JobOptionsSvc        INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-dbg/x86_64-centos7-gcc8-dbg/jobOptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-ApplicationMgr    SUCCESS 
-====================================================================================================================================
-                                                   Welcome to ApplicationMgr (GaudiCoreSvc v31r0)
-                                          running on lxplus089.cern.ch on Thu Mar 14 17:14:44 2019
-====================================================================================================================================
-ApplicationMgr Ready
-IOVDbFolder_test     INFO Opening COOL connection for sqlite://;schema=IOVDbFolderTest.db;dbname=OFLP200
-
-*** No errors detected
-
\ No newline at end of file
diff --git a/Database/IOVDbSvc/share/IOVDbParser_test.ref b/Database/IOVDbSvc/share/IOVDbParser_test.ref
deleted file mode 100644
index 2ea4fc62a968a2a1a70beb5e8ad7fbe3eb4cc468..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/IOVDbParser_test.ref
+++ /dev/null
@@ -1,23 +0,0 @@
-Running 2 test cases...
-
-
-Initializing Gaudi ApplicationMgr using job opts /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # =======> /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # (1,1): ApplicationMgr.OutputLevel = 5
-JobOptionsSvc        INFO # (2,1): ApplicationMgr.CreateSvc += ["StoreGateSvc/DetectorStore"]
-JobOptionsSvc        INFO # (3,1): IOVDbSvc.Folders = ["/key1"]
-JobOptionsSvc        INFO # (4,1): EventPersistencySvc.CnvServices += ["AthenaPoolCnvSvc"]
-JobOptionsSvc        INFO # (5,1): MessageSvc.OutputLevel = 5
-JobOptionsSvc        INFO Job options successfully read in from /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-ApplicationMgr    SUCCESS 
-====================================================================================================================================
-                                                   Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99)
-                                          running on karma on Sun Mar  3 18:21:30 2019
-====================================================================================================================================
-ApplicationMgr Ready
-IOVDbParser_test     INFO Folder extraText, Key: addrHeaderOverriding existing value <address_header service_type="71" clid="40774348" /> to new value <address_header service_type="71" clid="40774348" />
-IOVDbParser_test     INFO Folder extraText, Key: keyOverriding existing value /PIXEL/CablingMap to new value /PIXEL/CablingMap
-IOVDbParser_test     INFO Folder extraText, Key: timeStampOverriding existing value run-lumi to new value time
-IOVDbParser_test     INFO Folder extraText, Key: typeNameOverriding existing value AthenaAttributeList to new value AthenaAttributeList
-
-*** No errors detected
diff --git a/Database/IOVDbSvc/share/IOVDbStringFunctions_test.ref b/Database/IOVDbSvc/share/IOVDbStringFunctions_test.ref
deleted file mode 100644
index 75cf5b17af8be2868212eca91f8ca2caf0fadfbd..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/IOVDbStringFunctions_test.ref
+++ /dev/null
@@ -1,3 +0,0 @@
-Running 15 test cases...
-
-*** No errors detected
diff --git a/Database/IOVDbSvc/share/IOVDbSvcCurl_test.ref b/Database/IOVDbSvc/share/IOVDbSvcCurl_test.ref
deleted file mode 100644
index efa592469cb1ceb269bee161536956ef5970cb82..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/IOVDbSvcCurl_test.ref
+++ /dev/null
@@ -1,4 +0,0 @@
-Running 4 test cases...
-
-*** No errors detected
-
\ No newline at end of file
diff --git a/Database/IOVDbSvc/share/IOVDbSvc_BoostTest.ref b/Database/IOVDbSvc/share/IOVDbSvc_BoostTest.ref
deleted file mode 100644
index 3e71bff51e5b9987cbf5009ea834d2b637a32e86..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/IOVDbSvc_BoostTest.ref
+++ /dev/null
@@ -1,5 +0,0 @@
-ApplicationMgr.OutputLevel = 5;
-ApplicationMgr.CreateSvc += { "StoreGateSvc/DetectorStore" };
-IOVDbSvc.Folders = { "/key1"};
-EventPersistencySvc.CnvServices += { "AthenaPoolCnvSvc" };
-MessageSvc.OutputLevel = 5;
\ No newline at end of file
diff --git a/Database/IOVDbSvc/share/IOVDbSvc_Boost_test.ref b/Database/IOVDbSvc/share/IOVDbSvc_Boost_test.ref
deleted file mode 100644
index 7b911368c8834625f45a9177d8794a72a82a39bd..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/IOVDbSvc_Boost_test.ref
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-dbg/x86_64-centos7-gcc8-dbg/jobOptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-dbg/x86_64-centos7-gcc8-dbg/jobOptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # (1,1): ApplicationMgr.OutputLevel = 5
-JobOptionsSvc        INFO # (2,1): ApplicationMgr.CreateSvc += ["StoreGateSvc/DetectorStore"]
-JobOptionsSvc        INFO # (3,1): IOVDbSvc.Folders = ["/key1"]
-JobOptionsSvc        INFO # (4,1): EventPersistencySvc.CnvServices += ["AthenaPoolCnvSvc"]
-JobOptionsSvc        INFO # (5,1): MessageSvc.OutputLevel = 5
-JobOptionsSvc        INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-dbg/x86_64-centos7-gcc8-dbg/jobOptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-ApplicationMgr    SUCCESS 
-====================================================================================================================================
-                                                   Welcome to ApplicationMgr (GaudiCoreSvc v31r0)
-                                          running on lxplus089.cern.ch on Thu Mar 14 17:14:43 2019
-====================================================================================================================================
-ApplicationMgr Ready
-Running 10 test cases...
-
-*** No errors detected
-
\ No newline at end of file
diff --git a/Database/IOVDbSvc/share/IOVDbSvc_InvalidMarkup.txt b/Database/IOVDbSvc/share/IOVDbSvc_InvalidMarkup.txt
new file mode 100644
index 0000000000000000000000000000000000000000..53b5278651e3359dc08df76c47edca1a9ce32d11
--- /dev/null
+++ b/Database/IOVDbSvc/share/IOVDbSvc_InvalidMarkup.txt
@@ -0,0 +1,5 @@
+ApplicationMgr.OutputLevel = 5;
+ApplicationMgr.CreateSvc += { "StoreGateSvc/DetectorStore" };
+IOVDbSvc.Folders = { "<db>COOLONL_INDET/CONDBR2</db> /Indet/Onl/Beampos <key>/Indet/Beampos</key><forceTimestamp>1536151928</forceTimestamp"};
+EventPersistencySvc.CnvServices += { "AthenaPoolCnvSvc" };
+MessageSvc.OutputLevel = 5;
diff --git a/Database/IOVDbSvc/share/IovStore_test.ref b/Database/IOVDbSvc/share/IovStore_test.ref
deleted file mode 100644
index d280a371d774a6864b15c57ebc93fea6f1b8a8bf..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/IovStore_test.ref
+++ /dev/null
@@ -1,4 +0,0 @@
-Running 2 test cases...
-
-*** No errors detected
-
\ No newline at end of file
diff --git a/Database/IOVDbSvc/share/Json2Cool_test.ref b/Database/IOVDbSvc/share/Json2Cool_test.ref
deleted file mode 100644
index efa592469cb1ceb269bee161536956ef5970cb82..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/Json2Cool_test.ref
+++ /dev/null
@@ -1,4 +0,0 @@
-Running 4 test cases...
-
-*** No errors detected
-
\ No newline at end of file
diff --git a/Database/IOVDbSvc/share/ReadFromFileMetaData_test.ref b/Database/IOVDbSvc/share/ReadFromFileMetaData_test.ref
deleted file mode 100644
index e263596bf8f220c971e23d5adbcb9220cc6fae4c..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/ReadFromFileMetaData_test.ref
+++ /dev/null
@@ -1,19 +0,0 @@
-Running 2 test cases...
-
-
-Initializing Gaudi ApplicationMgr using job opts /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # =======> /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # (1,1): ApplicationMgr.OutputLevel = 5
-JobOptionsSvc        INFO # (2,1): ApplicationMgr.CreateSvc += ["StoreGateSvc/DetectorStore"]
-JobOptionsSvc        INFO # (3,1): IOVDbSvc.Folders = ["/key1"]
-JobOptionsSvc        INFO # (4,1): EventPersistencySvc.CnvServices += ["AthenaPoolCnvSvc"]
-JobOptionsSvc        INFO # (5,1): MessageSvc.OutputLevel = 5
-JobOptionsSvc        INFO Job options successfully read in from /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-ApplicationMgr    SUCCESS 
-====================================================================================================================================
-                                                   Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99)
-                                          running on karma on Sun Mar  3 18:19:37 2019
-====================================================================================================================================
-ApplicationMgr Ready
-
-*** No errors detected
diff --git a/Database/IOVDbSvc/share/TagFunctions_test.ref b/Database/IOVDbSvc/share/TagFunctions_test.ref
deleted file mode 100644
index 6b806a793e16d4da78437f13c0c532505831cbd2..0000000000000000000000000000000000000000
--- a/Database/IOVDbSvc/share/TagFunctions_test.ref
+++ /dev/null
@@ -1,20 +0,0 @@
-Running 2 test cases...
-
-
-Initializing Gaudi ApplicationMgr using job opts /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # =======> /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-JobOptionsSvc        INFO # (1,1): ApplicationMgr.OutputLevel = 5
-JobOptionsSvc        INFO # (2,1): ApplicationMgr.CreateSvc += ["StoreGateSvc/DetectorStore"]
-JobOptionsSvc        INFO # (3,1): IOVDbSvc.Folders = ["/key1"]
-JobOptionsSvc        INFO # (4,1): EventPersistencySvc.CnvServices += ["AthenaPoolCnvSvc"]
-JobOptionsSvc        INFO # (5,1): MessageSvc.OutputLevel = 5
-JobOptionsSvc        INFO Job options successfully read in from /home/sss/atlas/dvtest/build/joboptions/IOVDbSvc/IOVDbSvc_BoostTest.txt
-ApplicationMgr    SUCCESS 
-====================================================================================================================================
-                                                   Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99)
-                                          running on karma on Tue Apr 30 15:37:32 2019
-====================================================================================================================================
-ApplicationMgr Ready
-
-*** No errors detected
-
\ No newline at end of file
diff --git a/Database/IOVDbSvc/src/IOVDbParser.cxx b/Database/IOVDbSvc/src/IOVDbParser.cxx
index 6d30f23e561d7f588872b35ca57dddd6e40858ee..745abd8bfa95651f8f234539264efdc559697120 100644
--- a/Database/IOVDbSvc/src/IOVDbParser.cxx
+++ b/Database/IOVDbSvc/src/IOVDbParser.cxx
@@ -32,6 +32,14 @@ IOVDbParser::IOVDbParser(const std::string& input, MsgStream& log) :
       // first find the end of the tag, either '>' or ' ', whichever first
       std::string::size_type iofs2=input.find(">",iofs1);
       std::string::size_type iofs3=input.find("/>",iofs1);
+      bool noClosingTag = (iofs2 == std::string::npos);
+      if (noClosingTag){
+        m_msg << MSG::FATAL << 
+            "Badly formed XML string, no closing tag in " << input << endmsg;
+        m_valid=false;
+        iofs=std::string::npos;
+        return;
+      }
       if (iofs2!=std::string::npos && iofs2<iofs3) {
         // found a closing >, so tag is standard <tag>value</tag> form
         std::string tag=IOVDbNamespace::spaceStrip(input.substr(iofs1+1,iofs2-iofs1-1));
@@ -41,13 +49,22 @@ IOVDbParser::IOVDbParser(const std::string& input, MsgStream& log) :
           // found closing tag, store tag and text
           m_keys[tag]=IOVDbNamespace::spaceStrip(input.substr(iofs2+1,iofs4-iofs2-1));
           // advance to the next part of the string, after '>' on closing tag
-          iofs=input.find(">",iofs4)+1;
+          iofs=input.find(">",iofs4);
+          if (iofs == std::string::npos) {
+            m_msg << MSG::FATAL << 
+              "Badly formed XML string, no closing tag in " << input << endmsg;
+            m_valid=false;
+            iofs=std::string::npos;
+            return;
+          } else {
+            iofs+=1;
+          }          
         } else {
-          m_msg << MSG::ERROR << 
-            "Badly formed XML string, no closing tag for " << tag <<
-            " in " << input << endmsg;
+          m_msg << MSG::FATAL << 
+            "Badly formed XML string, no closing tag in " << input << endmsg;
           m_valid=false;
           iofs=std::string::npos;
+          return;
         }
       } else if (iofs3!=std::string::npos) {
         // found a />, so tag is of form <tag values info/>
@@ -66,10 +83,11 @@ IOVDbParser::IOVDbParser(const std::string& input, MsgStream& log) :
         iofs=iofs3+2;
       } else {
         // found a < but no closing >
-        m_msg << MSG::ERROR << "Badly formed XML string, no closing < in input " <<
+        m_msg << MSG::FATAL << "Badly formed XML string, no closing > in input " <<
           input << endmsg;
         iofs=std::string::npos;
         m_valid=false;
+        return;
       }
     } else {
       // no more < in input, take the rest into 'outside' data slot
diff --git a/Database/IOVDbSvc/src/IOVDbSvc.cxx b/Database/IOVDbSvc/src/IOVDbSvc.cxx
index d02da4aa67e4de4bb8f811bd9130897122f37934..490f5f337797d81228c91f28cb04da4a40c69090 100644
--- a/Database/IOVDbSvc/src/IOVDbSvc.cxx
+++ b/Database/IOVDbSvc/src/IOVDbSvc.cxx
@@ -855,7 +855,11 @@ StatusCode IOVDbSvc::setupFolders() {
   for (const auto & thisFolder : m_par_folders.value()) {
     ATH_MSG_DEBUG( "Setup folder " << thisFolder );
     IOVDbParser folderdata(thisFolder,msg());
-    if (!folderdata.isValid()) return StatusCode::FAILURE;
+    if (!folderdata.isValid()) {
+      ATH_MSG_FATAL("setupFolders: Folder setup string is invalid: " <<thisFolder);
+      return StatusCode::FAILURE;
+    }
+    
     allFolderdata.push_back(folderdata);
   }
 
@@ -867,6 +871,10 @@ StatusCode IOVDbSvc::setupFolders() {
 
   for (const auto & thisOverrideTag : m_par_overrideTags) {
     IOVDbParser keys(thisOverrideTag,msg());
+    if (not keys.isValid()){
+      ATH_MSG_ERROR("An override tag was invalid: " << thisOverrideTag);
+      return StatusCode::FAILURE;
+    }
     std::string prefix;
     if (!keys.getKey("prefix","",prefix)) { // || !keys.getKey("tag","",tag)) {
       ATH_MSG_ERROR( "Problem in overrideTag specification " <<thisOverrideTag );
diff --git a/Database/IOVDbSvc/test/IOVDbParser_test.cxx b/Database/IOVDbSvc/test/IOVDbParser_test.cxx
index 174fe6041fbefd7cbc8257a712b363f44bdd0ff6..458e2c7f0112be3e9b5332931cdcdd492e323a61 100644
--- a/Database/IOVDbSvc/test/IOVDbParser_test.cxx
+++ b/Database/IOVDbSvc/test/IOVDbParser_test.cxx
@@ -83,6 +83,7 @@ BOOST_FIXTURE_TEST_SUITE(IOVDbParserTest , GaudiKernelFixture)
       }
       bool testEqualityOperator = (parser3 == equivalentParser);
       bool testEqualityFalse = (parser1 == parser3);
+      
       BOOST_TEST(testEqualityOperator);
       BOOST_TEST(!testEqualityFalse);
       BOOST_TEST(parser1.toString() == "Folder:extraText, Attributes: [addrHeader:<address_header service_type=\"71\" clid=\"40774348\" />] [key:/PIXEL/CablingMap] [timeStamp:time] [typeName:AthenaAttributeList] ");
@@ -100,6 +101,15 @@ BOOST_FIXTURE_TEST_SUITE(IOVDbParserTest , GaudiKernelFixture)
       BOOST_TEST(!parser1.extensible());
       BOOST_TEST(!parser1.overridesIov());
       BOOST_TEST(parser1.iovOverrideValue()==0);
+      //checks for ATEAM-666
+      //the following doesnt close the forceTimestamp element correctly
+      //std::string invalidString1{"extraText<timeStamp>time</timeStamp><forceTimestamp>123456</forceTimestamp<addrHeader><address_header service_type=\"71\" clid=\"40774348\" /></addrHeader><typeName>AthenaAttributeList</typeName>"};
+      std::string invalidString1{"<db>COOLONL_INDET/CONDBR2</db> /Indet/Onl/Beampos <key>/Indet/Beampos</key><forceTimestamp>1536151928</forceTimestamp"};
+      IOVDbParser parser4(invalidString1, log);
+      BOOST_TEST( parser4.isValid() == false);
+      BOOST_TEST(parser4.getKey("forceTimestamp", "", returnValue) == false);
+      BOOST_TEST(parser1.iovOverrideValue()==0);
+      BOOST_TEST(returnValue == "");
     }
   BOOST_AUTO_TEST_SUITE_END()
 BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file
diff --git a/Database/IOVDbSvc/test/IOVDbSvc_InvalidMarkup_test.cxx b/Database/IOVDbSvc/test/IOVDbSvc_InvalidMarkup_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..afcd9641ab5e7b8ef3f1ad6ddeb7c6ed19af0d45
--- /dev/null
+++ b/Database/IOVDbSvc/test/IOVDbSvc_InvalidMarkup_test.cxx
@@ -0,0 +1,64 @@
+/*
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+*/
+/*
+ */
+/**
+ * @file IOVDbSvc/test/IOVDbSvc_InvalidMarkup_test.cxx
+ * @author Shaun Roe
+ * @date Jan, 2019
+ * @brief Some tests for IOVDbSvc in the Boost framework; transferred from original work by Scott Snyder
+ */
+
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_MAIN
+#define BOOST_TEST_MODULE TEST_IOVDBSVC
+
+#include <boost/test/unit_test.hpp>
+//
+#include "AthenaKernel/IOVTime.h"
+#include "AthenaKernel/IOVRange.h"
+#include "AthenaKernel/IAddressProvider.h"
+#include "AthenaKernel/ExtendedEventContext.h"
+#include "GaudiKernel/EventContext.h"
+#include "GaudiKernel/IOpaqueAddress.h"
+//
+#include "GaudiKernelFixtureBase.h"
+#include "TestFolderFixture.h"
+namespace utf = boost::unit_test;
+
+struct GaudiKernelFixture:public GaudiKernelFixtureBase{
+  GaudiKernelFixture():GaudiKernelFixtureBase("IOVDbSvc_InvalidMarkup.txt"){
+    //nop, everything in base.
+  }
+};
+
+struct TestFolderFixture:public TestFolderFixtureBase{
+  //using IOVDbSvc default connection to sqlite file cooldummy.db
+  TestFolderFixture():TestFolderFixtureBase("cooldummy.db"){
+    //nop, everything in base.
+  }
+};
+
+//Basic tests that the service can be retrieved
+BOOST_AUTO_TEST_SUITE(IOVDbSvcTest )
+  GaudiKernelFixture g;
+  const auto & svcLoc=g.svcLoc;
+  ServiceHandle<IIOVDbSvc> iovdbsvc ("IOVDbSvc", "test");
+
+  BOOST_AUTO_TEST_CASE( SanityCheck ){
+    const bool svcLocatorIsNotOk=(svcLoc != nullptr);
+    BOOST_TEST(svcLocatorIsNotOk);
+  }
+
+  BOOST_AUTO_TEST_CASE(IOVDbSvcRetrieved){
+    BOOST_TEST (iovdbsvc.retrieve().isFailure());
+  }
+  
+  BOOST_AUTO_TEST_CASE(preloadAddresses){
+    IAddressProvider* iovdbsvc_ap =  dynamic_cast<IAddressProvider*> (iovdbsvc.get());
+    BOOST_TEST( iovdbsvc_ap == nullptr);
+  }
+  
+BOOST_AUTO_TEST_SUITE_END()
+