diff --git a/solidify-oai-pmh/src/main/java/ch/unige/solidify/service/OAIService.java b/solidify-oai-pmh/src/main/java/ch/unige/solidify/service/OAIService.java
index 15e1a58bd60610e1038305c9132d4020192ccc91..f1165387aa74f9f90b38bfcb460a217544120586 100644
--- a/solidify-oai-pmh/src/main/java/ch/unige/solidify/service/OAIService.java
+++ b/solidify-oai-pmh/src/main/java/ch/unige/solidify/service/OAIService.java
@@ -30,6 +30,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.JAXBException;
@@ -401,7 +402,7 @@ public class OAIService {
 
     // Replace each metadata content by the original XML contents including namespaces
     for (String metadataContent : metadataContents) {
-      xml = xml.replaceFirst(OAIConstants.METADATA_CONTENT_TAG, metadataContent);
+      xml = xml.replaceFirst(OAIConstants.METADATA_CONTENT_TAG, Matcher.quoteReplacement(metadataContent));
     }
     return xml;
   }