Index: src/java/org/apache/nutch/parse/ParserFactory.java
===================================================================
--- src/java/org/apache/nutch/parse/ParserFactory.java	(revision 1182369)
+++ src/java/org/apache/nutch/parse/ParserFactory.java	(working copy)
@@ -343,14 +343,13 @@
       // NotMappedParserException
       
       for (int i=0; i<extensions.length; i++) {
-        if (extensions[i].getAttribute("contentType") != null
-            && extensions[i].getAttribute("contentType").equals(
-                contentType)) {
-          extList.add(extensions[i]);
-        }
-        else if ("*".equals(extensions[i].getAttribute("contentType"))){
+      	if ("*".equals(extensions[i].getAttribute("contentType"))){
           extList.add(0, extensions[i]);
         }
+        else if (extensions[i].getAttribute("contentType") != null
+            && contentType.matches(escapeContentType(extensions[i].getAttribute("contentType")))) {
+          extList.add(extensions[i]);
+        }
       }
       
       if (extList.size() > 0) {
@@ -377,10 +376,18 @@
     
     return (extList.size() > 0) ? extList : null;
   }
+  
+  private String escapeContentType(String contentType) {
+  	// Escapes contentType in order to use as a regex 
+  	// (and keep backwards compatibility).
+  	// This enables to accept multiple types for a single parser. 
+  	return contentType.replace("+", "\\+").replace(".", "\\.");
+	}
 
   private boolean match(Extension extension, String id, String type) {
     return ((id.equals(extension.getId())) &&
-            (type.equals(extension.getAttribute("contentType")) || extension.getAttribute("contentType").equals("*") ||
+            (extension.getAttribute("contentType").equals("*") || 
+             type.matches(escapeContentType(extension.getAttribute("contentType"))) ||
              type.equals(DEFAULT_PLUGIN)));
   }
   
Index: src/plugin/parse-html/plugin.xml
===================================================================
--- src/plugin/parse-html/plugin.xml	(revision 1182369)
+++ src/plugin/parse-html/plugin.xml	(working copy)
@@ -39,7 +39,7 @@
 
       <implementation id="org.apache.nutch.parse.html.HtmlParser"
                       class="org.apache.nutch.parse.html.HtmlParser">
-        <parameter name="contentType" value="text/html"/>
+        <parameter name="contentType" value="text/html|application/xhtml+xml"/>
         <parameter name="pathSuffix" value=""/>
       </implementation>
 
