diff --git a/swig/perl/Transcoder/XMLExceptionHandler.cpp b/swig/perl/Transcoder/XMLExceptionHandler.cpp
deleted file mode 100644
index 13df16e2a89dff4100d283f190f227a5d2317075..0000000000000000000000000000000000000000
--- a/swig/perl/Transcoder/XMLExceptionHandler.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stdlib.h>
-#include "XMLExceptionHandler.hpp"
-
-XERCES_CPP_NAMESPACE_USE
-
-XMLExceptionHandler* XMLExceptionHandler::_instance = NULL;
-
-XMLExceptionHandler*
-XMLExceptionHandler::getInstance() {
-  if (_instance == NULL) {
-    _instance = new XMLExceptionHandler();
-  }
-  return _instance;
-}
-
-XMLExceptionHandler::XMLExceptionHandler() {}
-
-XMLException*
-XMLExceptionHandler::copyXMLException(const XMLException& e)
-{
-    if(e.getType() == XMLUni::fgArrayIndexOutOfBoundsException_Name)
-    {
-        return (XMLException*)((ArrayIndexOutOfBoundsException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgEmptyStackException_Name)
-    {
-        return (XMLException*)((EmptyStackException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgIllegalArgumentException_Name)
-    {
-        return (XMLException*)((IllegalArgumentException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgInvalidCastException_Name)
-    {
-        return (XMLException*)((InvalidCastException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgIOException_Name)
-    {
-        return (XMLException*)((IOException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgNoSuchElementException_Name)
-    {
-        return (XMLException*)((NoSuchElementException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgNullPointerException_Name)
-    {
-        return (XMLException*)((NullPointerException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgNumberFormatException_Name)
-    {
-        return (XMLException*)((NumberFormatException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgParseException_Name)
-    {
-        return (XMLException*)((ParseException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgXMLPlatformUtilsException_Name)
-    {
-        return (XMLException*)((XMLPlatformUtilsException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgRuntimeException_Name)
-    {
-        return (XMLException*)((RuntimeException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgSchemaDateTimeException_Name)
-    {
-        return (XMLException*)((SchemaDateTimeException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgTranscodingException_Name)
-    {
-        return (XMLException*)((TranscodingException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgUnexpectedEOFException_Name)
-    {
-        return (XMLException*)((UnexpectedEOFException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgUnsupportedEncodingException_Name)
-    {
-        return (XMLException*)((UnsupportedEncodingException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgUTFDataFormatException_Name)
-    {
-        return (XMLException*)((UTFDataFormatException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgNetAccessorException_Name)
-    {
-        return (XMLException*)((NetAccessorException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgMalformedURLException_Name)
-    {
-        return (XMLException*)((MalformedURLException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgXSerializationException_Name)
-    {
-        return (XMLException*)((XSerializationException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgInvalidDatatypeFacetException_Name)
-    {
-        return (XMLException*)((InvalidDatatypeFacetException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgInvalidDatatypeValueException_Name)
-    {
-        return (XMLException*)((InvalidDatatypeValueException*)&e)->duplicate();
-    }
-    else if(e.getType() == XMLUni::fgXPathException_Name)
-    {
-        return (XMLException*)((XPathException*)&e)->duplicate();
-    }
-    else
-    {
-        croak("Unknown Exception type: %d", e.getType());
-        return 0;
-    }
-}
diff --git a/swig/perl/Transcoder/XMLExceptionHandler.hpp b/swig/perl/Transcoder/XMLExceptionHandler.hpp
deleted file mode 100644
index 5d2051acd10d75f5542a96fe7a3aa049e18e6760..0000000000000000000000000000000000000000
--- a/swig/perl/Transcoder/XMLExceptionHandler.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __XMLEXCEPTIONHANDLER
-#define __XMLEXCEPTIONHANDLER
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-/* Get rid of free and malloc defined by perl */
-#undef free
-#undef malloc
-
-#include "xercesc/util/ArrayIndexOutOfBoundsException.hpp"
-#include "xercesc/util/EmptyStackException.hpp"
-#include "xercesc/util/IllegalArgumentException.hpp"
-#include "xercesc/util/InvalidCastException.hpp"
-#include "xercesc/util/IOException.hpp"
-#include "xercesc/util/NoSuchElementException.hpp"
-#include "xercesc/util/NullPointerException.hpp"
-#include "xercesc/util/NumberFormatException.hpp"
-#include "xercesc/util/ParseException.hpp"
-#include "xercesc/util/RuntimeException.hpp"
-#include "xercesc/util/SchemaDateTimeException.hpp"
-#include "xercesc/util/TranscodingException.hpp"
-#include "xercesc/util/UnexpectedEOFException.hpp"
-#include "xercesc/util/UnsupportedEncodingException.hpp"
-#include "xercesc/util/UTFDataFormatException.hpp"
-#include "xercesc/util/XMLNetAccessor.hpp"
-#include "xercesc/internal/XSerializationException.hpp"
-#include "xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"
-#include "xercesc/validators/datatype/InvalidDatatypeValueException.hpp"
-#include "xercesc/validators/schema/identity/XPathException.hpp"
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLExceptionHandler {
-
-protected:
-
-  XMLExceptionHandler();
-  static XMLExceptionHandler* _instance;
-
-public:
-
-  static XMLExceptionHandler* getInstance();
-
-  ~XMLExceptionHandler();
-  XMLException* copyXMLException(const XMLException& e);
-};
-
-XERCES_CPP_NAMESPACE_END
-
-#endif /* __XMLEXCEPTIONHANDLER */