diff --git a/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorMediaConchPlugin.java b/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorMediaConchPlugin.java
index d9a8de4b0cbea4f1c1194eaa0c6fd2a138ada393..25acf002b563dbcd687c524ac9c41627936924e1 100644
--- a/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorMediaConchPlugin.java
+++ b/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorMediaConchPlugin.java
@@ -19,7 +19,6 @@ package org.slub.rosetta.dps.repository.plugin;
 
 import com.exlibris.core.sdk.strings.StringUtils;
 import com.exlibris.dps.sdk.techmd.MDExtractorPlugin;
-import org.xml.sax.InputSource;
 
 import javax.xml.XMLConstants;
 import javax.xml.transform.Transformer;
@@ -27,11 +26,14 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
+import java.io.OutputStreamWriter;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -49,6 +51,7 @@ public class SLUBTechnicalMetadataExtractorMediaConchPlugin implements MDExtract
     private String mediaconch_binary_path;
     private String mediaconch_profile_path;
     private String mediainfo_binary_path;
+    private final static String MEDIAINFO_XSD = "/transformer.xsl";
 
     private List<String> extractionErrors = new ArrayList<String>();
     private List<String> validationLog = new ArrayList<String>();
@@ -137,25 +140,45 @@ public class SLUBTechnicalMetadataExtractorMediaConchPlugin implements MDExtract
             StringBuilder mediainfo_output= new StringBuilder();
             while (line != null) {
                     /* we should patched out, because not allowed to download xsd */
-                String regex = " https://mediaarea\\.net/mediainfo/mediainfo.*\\.xsd";
+/*                String regex = " https://mediaarea\\.net/mediainfo/mediainfo.*\\.xsd";
+*/
+                String regex = "xsi:schemaLocation.*?>";
                 String line_patched = line.replaceAll( regex, "");
                 mediainfo_output.append(line_patched);
+                //mediainfo_output.append(line);
                 line = reader.readLine();
             }
+            File temp_media_output_file = File.createTempFile("mediainfo_", ".xml");
+            OutputStream temp_media_outputstream = new FileOutputStream( temp_media_output_file);
+            OutputStreamWriter  temp_media_streamwriter = new OutputStreamWriter( temp_media_outputstream);
+            temp_media_streamwriter.append( mediainfo_output);
+            temp_media_streamwriter.close();
             /* xslt transform */
-            InputStream stylestream = getClass().getResourceAsStream("resources/transformer.xsl");
+            InputStream stylestream = getClass().getResourceAsStream(MEDIAINFO_XSD);
+            File tmp = new File(
+                    String.valueOf(getClass().getResource(MEDIAINFO_XSD))
+            );
+            System.out.println("Resource="+tmp.getPath());
             StreamSource stylesource = new StreamSource( stylestream);
+
+            //stylesource.setPublicId("https://mediaarea.net/mediainfo");
+            //stylesource.setSystemId("https://mediaarea.net/mediainfo");
+            stylesource.setSystemId( "./resources" + MEDIAINFO_XSD);
             System.out.println("stylesource, systemID=" + stylesource.getSystemId());
             System.out.println("stylesource, publicID=" + stylesource.getPublicId());
 
             // Use a Transformer for output
-            StreamSource mediainfo_source = new StreamSource(String.valueOf(new InputSource(mediainfo_output.toString())));
+            InputStream mediastream = new FileInputStream( temp_media_output_file );
+            StreamSource mediainfo_source = new StreamSource( mediastream );
+            //stylesource.setPublicId("https://mediaarea.net/mediainfo");
+            mediainfo_source.setSystemId( temp_media_output_file);
             System.out.println("mediainfo_source, systemID=" + mediainfo_source.getSystemId());
             System.out.println("mediainfo_source, publicID=" + mediainfo_source.getPublicId());
 
             TransformerFactory tFactory = TransformerFactory.newInstance();
             tFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
-            tFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
+            //tFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
+            tFactory.setFeature(XMLConstants.USE_CATALOG, false);
             Transformer transformer = tFactory.newTransformer(stylesource);
 
 /* ok, mediainfo is loaded correctly, and xslt loaded too */
@@ -163,6 +186,7 @@ public class SLUBTechnicalMetadataExtractorMediaConchPlugin implements MDExtract
             StreamResult result = new StreamResult( debugFile);
 //            StreamResult result = new StreamResult(System.out); /* FIXME , use StringOutputStream */
             transformer.transform(mediainfo_source, result);
+            temp_media_output_file.deleteOnExit();
             attributes.put("key", "value");
         } catch (InterruptedException e) {
             Thread.currentThread().interrupt();