diff --git a/VERSIONS_HOTLINE/37850 b/VERSIONS_HOTLINE/37850
new file mode 100644
index 0000000000000000000000000000000000000000..ced4ea9fd118db4f13cb645b43623825972616fd
--- /dev/null
+++ b/VERSIONS_HOTLINE/37850
@@ -0,0 +1 @@
+ - ticket #37850 : Ressource numérique 1dtouch : correction du moissonnage lorsque le serveur oneDTouch retourne une erreur
diff --git a/library/Class/WebService/DublinCoreParser.php b/library/Class/WebService/DublinCoreParser.php
index 863f259719f9863320fa4a804a4f1dd4181f1864..a9896f0a9b7bb45e97294713e35ef22a50cbfdd2 100644
--- a/library/Class/WebService/DublinCoreParser.php
+++ b/library/Class/WebService/DublinCoreParser.php
@@ -65,7 +65,7 @@ class Class_WebService_DublinCoreParser extends Class_WebService_OAI_ParserAbstr
   public function newRecord($attributes) {
     $this->_record=[];
     $this->ressource_numerique = $this->visitor->getNewRessourceNumerique();
-    $this->_records_ressources[] = $this->ressource_numerique;
+    $this->_records_ressources[] = $this->getRessourceNumerique();
   }
 
 
@@ -75,49 +75,49 @@ class Class_WebService_DublinCoreParser extends Class_WebService_OAI_ParserAbstr
 
 
   public function enddc_identifier($data) {
-    $this->ressource_numerique->setOaiId($data);
+    $this->getRessourceNumerique()->setOaiId($data);
     $this->_record['id_oai']=$data;
   }
 
 
   public function enddc_title($data) {
-    $this->ressource_numerique->setTitle($data);
+    $this->getRessourceNumerique()->setTitle($data);
     $this->_record['titre']=$data;
   }
 
 
   public function enddc_creator($data) {
-    $this->ressource_numerique->addAuthor($data);
+    $this->getRessourceNumerique()->addAuthor($data);
     $this->_record['auteur']=$data;
   }
 
 
   public function enddc_publisher($data) {
-    $this->ressource_numerique->setEditeur($data);
+    $this->getRessourceNumerique()->setEditeur($data);
     $this->_record['editeur']=$data;
   }
 
   public function enddc_subject($data) {
-    $this->ressource_numerique->addMatiere($data);
+    $this->getRessourceNumerique()->addMatiere($data);
   }
 
   public function enddc_date($data) {
     $date = $data;
     if (strlen($date)>4)
-      $this->ressource_numerique->setYear(substr($date,0,4));
+      $this->getRessourceNumerique()->setYear(substr($date,0,4));
     $this->_record['date']=$date;
   }
 
 
   public function enddc_relation($data) {
     $this->_record['relation']=$data;
-    $this->ressource_numerique->setExternalUri($data);
+    $this->getRessourceNumerique()->setExternalUri($data);
   }
 
 
   public function enddc_description($data) {
     $this->_record['description']=$data;
-    $this->ressource_numerique->setDescription($data);
+    $this->getRessourceNumerique()->setDescription($data);
   }
 
 
@@ -129,5 +129,12 @@ class Class_WebService_DublinCoreParser extends Class_WebService_OAI_ParserAbstr
   public function getRecordsRessourceNumeriques() {
     return $this->_records_ressources;
   }
+
+
+  protected function getRessourceNumerique() {
+    if(!$this->ressource_numerique)
+      $this->ressource_numerique = new Class_WebService_BibNumerique_RessourceNumerique();
+    return $this->ressource_numerique;
+  }
 }
 ?>
diff --git a/library/Class/WebService/OneDTouchDCParser.php b/library/Class/WebService/OneDTouchDCParser.php
index 71dc88cad231814b072235e1863946df6ccb7c74..3166a6d075791da8a6e4944e9e84d4c109c462f9 100644
--- a/library/Class/WebService/OneDTouchDCParser.php
+++ b/library/Class/WebService/OneDTouchDCParser.php
@@ -46,7 +46,7 @@ class Class_WebService_OneDTouchDCParser extends Class_WebService_DublinCorePars
     if ($this->parser->getParent() == 'track') {
       return $this->current_track->setUrl($data);
     }
-    $this->ressource_numerique->setExternalUri($data);
+    $this->getRessourceNumerique()->setExternalUri($data);
   }
 
 
@@ -67,7 +67,7 @@ class Class_WebService_OneDTouchDCParser extends Class_WebService_DublinCorePars
 
 
   public function endTracks() {
-    $this->ressource_numerique->setRessources($this->tracks);
+    $this->getRessourceNumerique()->setRessources($this->tracks);
   }
 
 
@@ -82,7 +82,7 @@ class Class_WebService_OneDTouchDCParser extends Class_WebService_DublinCorePars
 
 
   public function endCover_url($data) {
-    $this->ressource_numerique->addPoster($data);
+    $this->getRessourceNumerique()->addPoster($data);
   }
 
 
diff --git a/library/Class/WebService/XMLParser.php b/library/Class/WebService/XMLParser.php
index 4b5bea8af96d308ac18e7007f733b5480b4223fb..f15109fcc53348b54ebb67df9966882f9a5f43f8 100644
--- a/library/Class/WebService/XMLParser.php
+++ b/library/Class/WebService/XMLParser.php
@@ -20,6 +20,7 @@
  */
 
 class Class_WebService_XMLParser {
+  use Trait_Logger;
 
   protected $_current_data ;
   protected $_parents ;
@@ -87,8 +88,9 @@ class Class_WebService_XMLParser {
       $column = xml_get_current_column_number($parser);
       $byte = xml_get_current_byte_index($parser);
       $error_msg = "XML parser error: $error_string"
-        . " at line $line column $column byte $byte (code: $error_code)";
-      error_log($error_msg);
+        . " at line $line column $column byte $byte (code: $error_code)"
+        . $xml;
+      $this->getLogger()->log($error_msg);
     }
     xml_parser_free($parser) ;
     return $this ;
diff --git a/tests/library/Class/WebService/OneDTouchTest.php b/tests/library/Class/WebService/OneDTouchTest.php
index a8a0182ea5d42f5cc9728639bbdcd90cd619ca31..1846ddbdae974724c91d55ef599a9be7d88bf97a 100644
--- a/tests/library/Class/WebService/OneDTouchTest.php
+++ b/tests/library/Class/WebService/OneDTouchTest.php
@@ -216,4 +216,40 @@ class OneDTouchIncTest extends ModelTestCase {
     $this->assertEquals(1, Class_Album::findFirstBy(['titre' => 'WOLFEP026'])->getId());
   }
 }
-?>
+
+
+
+class oneDTouchWithErrorResponseTest extends ModelTestCase {
+ protected $_storm_default_to_volatile = true;
+
+  public function setUp() {
+    parent::setUp();
+
+    RessourcesNumeriquesFixtures::activate1Dtouch();
+    $error_response = file_get_contents(realpath(dirname(__FILE__)). '/../../../fixtures/onedtouch_error_response.html');
+
+    $this->_http_client = $this->mock();
+    $this->_http_client
+      ->whenCalled('open_url')
+      ->with('http://dev.1dtouch.com/oai?verb=ListRecords&metadataPrefix=oai1dtouch_dc')
+      ->answers($error_response)
+      ->beStrict();
+
+    $this->fixture('Class_WebService_HarvestLog',
+                   ['id' => 1,
+                    'end_date' => '2015-02-01',
+                    'type_doc' => Class_TypeDoc::ONEDTOUCH]);
+
+    $this->_service = new Class_WebService_BibNumerique_OneDTouch();
+    $this->_service->setTimeSource(new TimeSourceForTest('2015-03-18 10:00:00'));
+    Class_WebService_BibNumerique_OneDTouch::setDefaultHttpClient($this->_http_client);
+    $this->_service->harvest();
+    Class_Album::clearCache();
+  }
+
+
+  /** @test */
+  public function shouldNotHaveAlbums() {
+    $this->assertEmpty(Class_Album::findAll());
+  }
+}
\ No newline at end of file