diff --git a/src/output/proticdbml.cpp b/src/output/proticdbml.cpp
index 962e31624e056d5c0edfa77a7b26dc7397bbc743..cf80947e1c02e408c610cbf42005bc9c06c45f93 100644
--- a/src/output/proticdbml.cpp
+++ b/src/output/proticdbml.cpp
@@ -220,30 +220,27 @@ void ProticdbMl::writeSamples() {
         _output_stream->writeEndElement();// samples
 }
 
-private void writeMsRuns() throws Exception {
-    try {
-        writer.writeStartElement("msRuns");
-
-        for (Identification ident : arrayIdentifications) {
-            for (MsRun samp : ident.getMsRunSet()) {
+void ProticdbMl::writeMsRuns() {
+    
+        _output_stream->writeStartElement("msRuns");
+        for (std::vector<MsRunSp> msrun_sp : _sp_project.get()->getMsRunStore().getMsRunList()) {
 
-                String name = samp.getSampleName();
-                name = name.replaceAll(".xml", "");
+                QString name = msrun_sp.get()->getSampleName();
 
-                String id_samp = sample_to_id.get(samp.getSampleName());
+                QString id_samp = _sample_to_id.at(name);
 
                 // Element spectrumList = doc.createElement("spectrumList");
                 // msRun.appendChild(spectrumList);
 
-                String id_msrun = msrun_to_id.get(samp.getSampleName());
+                QString id_msrun = msrun_sp.get()->getXmlId();
 
                 // balise MsRun
-                writer.writeStartElement("msRun");
-                writer.writeAttribute("sample_id", id_samp);
-                writer.writeAttribute("id", id_msrun);
+                _output_stream->writeStartElement("msRun");
+                _output_stream->writeAttribute("sample_id", id_samp);
+                _output_stream->writeAttribute("id", id_msrun);
 
-                writer.writeStartElement("description");
-                writer.writeStartElement("admin");
+                _output_stream->writeStartElement("description");
+                _output_stream->writeStartElement("admin");
                 // writer.writeStartElement("contact");
                 // writer.writeStartElement("email");
                 // writer.writeCharacters("valot@moulon.inra.fr");
@@ -254,34 +251,26 @@ private void writeMsRuns() throws Exception {
                 // writer.writeEndElement();// name
                 // writer.writeEndElement();// contact
 
-                writer.writeStartElement("sourceFile");
-                writer.writeStartElement("nameOfFile");
-                writer.writeCharacters(name + ".RAW");
-                writer.writeEndElement();// nameOfFile
-                writer.writeEndElement();// sourceFile
+                _output_stream->writeStartElement("sourceFile");
+                _output_stream->writeStartElement("nameOfFile");
+                _output_stream->writeCharacters(name + ".RAW");
+                _output_stream->writeEndElement();// nameOfFile
+                _output_stream->writeEndElement();// sourceFile
 
-                writer.writeStartElement("sampleName");
-                writer.writeCharacters(name);
-                writer.writeEndElement();// sampleName
-                writer.writeEndElement();// admin
-                writer.writeEndElement();// description
+                _output_stream->writeStartElement("sampleName");
+                _output_stream->writeCharacters(name);
+                _output_stream->writeEndElement();// sampleName
+                _output_stream->writeEndElement();// admin
+                _output_stream->writeEndElement();// description
 
-                writer.writeEndElement();// msRun
-            }
+                _output_stream->writeEndElement();// msRun
+            
         }
-        writer.writeEndElement();// msRuns
-    } catch (Exception e) {
-        String message = "error writing MS runs in ProticDbMl \n"
-                         + e.getMessage();
-        logger.error(message);
-        throw new Exception(message);
-    }
+        _output_stream->writeEndElement();// msRuns
 }
 
 
-private void writeIdentificationRun(Identification identification)
-throws Exception {
-    try {
+void ProticdbMl::writeIdentificationRun(Identification identification) {
         writer.writeAttribute("ident_method_id", "m1");
         writer.writeAttribute("customdb_id", "customdb0");
 
@@ -397,12 +386,6 @@ throws Exception {
         writer.writeEndElement();// dataProcessing
 
         writer.writeEndElement();// description
-    } catch (Exception e) {
-        String message = "error writing identificationRun in ProticDbMl \n"
-        + e.getMessage();
-        logger.error(message);
-        throw new Exception(message);
-    }
 }
 
 private void writePeptideHit(Peptide pep, Group group,
diff --git a/src/output/proticdbml.h b/src/output/proticdbml.h
index 5a01d15793aa7f0d193b10c546def920f8311c05..f2b6837efeb37a623a343b57e9a9e275eeecd88a 100644
--- a/src/output/proticdbml.h
+++ b/src/output/proticdbml.h
@@ -54,6 +54,7 @@ private :
     void writeProject();
     void writeIdentMethod();
     void writeSamples();
+    void writeMsRuns();
     
 private :
     QFile * _output_file;