diff --git a/Projects/Win32/BCB6/Xerces-all/XercesLib/XercesLib.bpr b/Projects/Win32/BCB6/Xerces-all/XercesLib/XercesLib.bpr
index 9cb7799d54ff44a0cb1a9f4e494e022c1125b7f8..929e987a38fc0a70352b259c47f0ad0413e86bf3 100644
--- a/Projects/Win32/BCB6/Xerces-all/XercesLib/XercesLib.bpr
+++ b/Projects/Win32/BCB6/Xerces-all/XercesLib/XercesLib.bpr
@@ -53,6 +53,7 @@
       ..\..\..\..\..\Build\Win32\BCB6\obj\KVStringPair.obj 
       ..\..\..\..\..\Build\Win32\BCB6\obj\Mutexes.obj 
       ..\..\..\..\..\Build\Win32\BCB6\obj\PlatformUtils.obj 
+      ..\..\..\..\..\Build\Win32\BCB6\obj\PSVIUni.obj 
       ..\..\..\..\..\Build\Win32\BCB6\obj\QName.obj 
       ..\..\..\..\..\Build\Win32\BCB6\obj\StringPool.obj 
       ..\..\..\..\..\Build\Win32\BCB6\obj\SynchronizedStringPool.obj 
@@ -416,6 +417,7 @@
       <FILE FILENAME="..\..\..\..\..\src\xercesc\util\KVStringPair.cpp" FORMNAME="" UNITNAME="KVStringPair" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
       <FILE FILENAME="..\..\..\..\..\src\xercesc\util\Mutexes.cpp" FORMNAME="" UNITNAME="Mutexes" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
       <FILE FILENAME="..\..\..\..\..\src\xercesc\util\PlatformUtils.cpp" FORMNAME="" UNITNAME="PlatformUtils" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+      <FILE FILENAME="..\..\..\..\..\src\xercesc\util\PSVIUni.cpp" FORMNAME="" UNITNAME="PSVIUni" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
       <FILE FILENAME="..\..\..\..\..\src\xercesc\util\QName.cpp" FORMNAME="" UNITNAME="QName" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
       <FILE FILENAME="..\..\..\..\..\src\xercesc\util\StringPool.cpp" FORMNAME="" UNITNAME="StringPool" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
       <FILE FILENAME="..\..\..\..\..\src\xercesc\util\SynchronizedStringPool.cpp" FORMNAME="" UNITNAME="SynchronizedStringPool" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
diff --git a/Projects/Win32/BCC.551/Xerces-all/PSVIWriter/PSVIWriter.mak b/Projects/Win32/BCC.551/Xerces-all/PSVIWriter/PSVIWriter.mak
index e7430b83523d9b18d055c899e99e18347c78de89..768ea7a3d85b2d608893a7f634ba3e546a891799 100644
--- a/Projects/Win32/BCC.551/Xerces-all/PSVIWriter/PSVIWriter.mak
+++ b/Projects/Win32/BCC.551/Xerces-all/PSVIWriter/PSVIWriter.mak
@@ -6,7 +6,6 @@ BCB = $(MAKEDIR)\..
 TARGETPATH=..\..\..\..\..\Build\Win32\BCC.551
 PROJECT = $(TARGETPATH)\PSVIWriter.exe
 OBJFILES = $(TARGETPATH)\obj\PSVIWriter.obj \
-    $(TARGETPATH)\obj\PSVIUni.obj \
     $(TARGETPATH)\obj\PSVIWriterHandlers.obj
 RESFILES = 
 MAINSOURCE = PSVIWriter.cpp
diff --git a/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak b/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak
index e33da30a699c421321d5c64f59ce08330f4756f3..66f474682571394001fdf871a9069f573cf9e732 100644
--- a/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak
+++ b/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak
@@ -49,6 +49,7 @@ OBJFILES = $(TARGETPATH)\obj\XercesLib.obj \
     $(TARGETPATH)\obj\KVStringPair.obj \
     $(TARGETPATH)\obj\Mutexes.obj \
     $(TARGETPATH)\obj\PlatformUtils.obj \
+    $(TARGETPATH)\obj\PSVIUni.obj \
     $(TARGETPATH)\obj\QName.obj \
     $(TARGETPATH)\obj\StringPool.obj \
     $(TARGETPATH)\obj\TransService.obj \
diff --git a/Projects/Win32/VC6/xerces-all/PSVIWriter/PSVIWriter.dsp b/Projects/Win32/VC6/xerces-all/PSVIWriter/PSVIWriter.dsp
index f36dc6881c6cd55a291c9d0aca62eaa83c20c8b6..fe99a91d40ee781cb1af50c247f731c2f53268cc 100644
--- a/Projects/Win32/VC6/xerces-all/PSVIWriter/PSVIWriter.dsp
+++ b/Projects/Win32/VC6/xerces-all/PSVIWriter/PSVIWriter.dsp
@@ -136,14 +136,6 @@ LINK32=link.exe
 # Name "PSVIWriter - Win64 Release"
 # Begin Source File
 
-SOURCE=..\..\..\..\..\samples\src\PSVIWriter\PSVIUni.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\..\..\samples\src\PSVIWriter\PSVIUni.hpp
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\..\..\..\samples\src\PSVIWriter\PSVIWriter.cpp
 # End Source File
 # Begin Source File
diff --git a/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp b/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp
index 6dc8601f938463e02ffaf94269b702998524ac90..a30f6577c428e0a2b3662384e1a1db5b4fc62849 100644
--- a/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp
+++ b/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp
@@ -692,6 +692,14 @@ SOURCE=..\..\..\..\..\src\xercesc\util\PlatformUtils.hpp
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\..\..\..\src\xercesc\util\PSVIUni.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\xercesc\util\PSVIUni.hpp
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\..\..\..\src\xercesc\util\QName.cpp
 # End Source File
 # Begin Source File
diff --git a/Projects/Win32/VC6/xerces-all/xerces-all.dsw b/Projects/Win32/VC6/xerces-all/xerces-all.dsw
index 0e44ce7e2d4e72b112c916bfb1a62f4d205ed65d..4e70f38df42e86338eea4b2a7537e15a24f2cd68 100644
--- a/Projects/Win32/VC6/xerces-all/xerces-all.dsw
+++ b/Projects/Win32/VC6/xerces-all/xerces-all.dsw
@@ -435,6 +435,21 @@ Package=<4>
 
 ###############################################################################
 
+Project: "XercesP"=".\XercesP\XercesP.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
 Project: "all"=".\all\all.dsp" - Package Owner=<4>
 
 Package=<5>
diff --git a/Projects/Win32/VC7.1/xerces-all/PSVIWriter/PSVIWriter.vcproj b/Projects/Win32/VC7.1/xerces-all/PSVIWriter/PSVIWriter.vcproj
index 996cb7c798550ab50ac0dea7ce98c44783b36ab2..dc88163a394606e2c652e5fd556836f399c007ad 100644
--- a/Projects/Win32/VC7.1/xerces-all/PSVIWriter/PSVIWriter.vcproj
+++ b/Projects/Win32/VC7.1/xerces-all/PSVIWriter/PSVIWriter.vcproj
@@ -250,12 +250,6 @@
 	<References>
 	</References>
 	<Files>
-		<File
-			RelativePath="..\..\..\..\..\samples\src\PSVIWriter\PSVIUni.cpp">
-		</File>
-		<File
-			RelativePath="..\..\..\..\..\samples\src\PSVIWriter\PSVIUni.hpp">
-		</File>
 		<File
 			RelativePath="..\..\..\..\..\samples\src\PSVIWriter\PSVIWriter.cpp">
 		</File>
diff --git a/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj b/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj
index 1d09f2deed243119612e14ed47dca3da097520c0..1046f725e385ff842266dcbd4be90c95fe452a3c 100644
--- a/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj
+++ b/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj
@@ -401,6 +401,12 @@
 			<File
 				RelativePath="..\..\..\..\..\src\xercesc\util\PlatformUtils.hpp">
 			</File>
+			<File
+				RelativePath="..\..\..\..\..\src\xercesc\util\PSVIUni.cpp">
+			</File>
+			<File
+				RelativePath="..\..\..\..\..\src\xercesc\util\PSVIUni.hpp">
+			</File>
 			<File
 				RelativePath="..\..\..\..\..\src\xercesc\util\QName.cpp">
 			</File>
diff --git a/Projects/Win32/VC8/xerces-all/PSVIWriter/PSVIWriter.vcproj b/Projects/Win32/VC8/xerces-all/PSVIWriter/PSVIWriter.vcproj
index 67a299e183ac713cf2d7d36244a05716888dfed9..e35e5d1de2490907ab038d4dd709ce90c847e07e 100644
--- a/Projects/Win32/VC8/xerces-all/PSVIWriter/PSVIWriter.vcproj
+++ b/Projects/Win32/VC8/xerces-all/PSVIWriter/PSVIWriter.vcproj
@@ -366,14 +366,6 @@
 	<References>
 	</References>
 	<Files>
-		<File
-			RelativePath="..\..\..\..\..\samples\src\PSVIWriter\PSVIUni.cpp"
-			>
-		</File>
-		<File
-			RelativePath="..\..\..\..\..\samples\src\PSVIWriter\PSVIUni.hpp"
-			>
-		</File>
 		<File
 			RelativePath="..\..\..\..\..\samples\src\PSVIWriter\PSVIWriter.cpp"
 			>
diff --git a/Projects/Win32/VC8/xerces-all/XercesLib/XercesLib.vcproj b/Projects/Win32/VC8/xerces-all/XercesLib/XercesLib.vcproj
index dcdbbbc55054d21c488cef5b6638ce69092a6505..6e74a803bdef487074ea08ca0910932faaa14dd5 100644
--- a/Projects/Win32/VC8/xerces-all/XercesLib/XercesLib.vcproj
+++ b/Projects/Win32/VC8/xerces-all/XercesLib/XercesLib.vcproj
@@ -554,6 +554,14 @@
 				RelativePath="..\..\..\..\..\src\xercesc\util\PlatformUtils.hpp"
 				>
 			</File>
+			<File
+				RelativePath="..\..\..\..\..\src\xercesc\util\PSVIUni.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\..\..\src\xercesc\util\PSVIUni.hpp"
+				>
+			</File>
 			<File
 				RelativePath="..\..\..\..\..\src\xercesc\util\QName.cpp"
 				>
diff --git a/samples/Makefile.am b/samples/Makefile.am
index 883d9d407f4e0d45e67ec905b8e0dfb650701fe5..428cc0ee41f4bc5d11a531034157f6380f832115 100644
--- a/samples/Makefile.am
+++ b/samples/Makefile.am
@@ -49,8 +49,7 @@ PParse_SOURCES =					src/PParse/PParse.cpp \
 							src/PParse/PParseHandlers.cpp
 
 sampleprogs +=						PSVIWriter
-PSVIWriter_SOURCES =					src/PSVIWriter/PSVIUni.cpp \
-							src/PSVIWriter/PSVIWriter.cpp \
+PSVIWriter_SOURCES =				src/PSVIWriter/PSVIWriter.cpp \
 							src/PSVIWriter/PSVIWriterHandlers.cpp
 
 sampleprogs +=						Redirect
diff --git a/samples/src/PSVIWriter/PSVIWriterHandlers.cpp b/samples/src/PSVIWriter/PSVIWriterHandlers.cpp
index ee3b2b88983e4cff8d11ae0321cf2cb696844617..be2f331fa0c80c84ac7554dfdbec515d513a3ee1 100644
--- a/samples/src/PSVIWriter/PSVIWriterHandlers.cpp
+++ b/samples/src/PSVIWriter/PSVIWriterHandlers.cpp
@@ -18,7 +18,7 @@
 //  Includes
 // ---------------------------------------------------------------------------
 #include "PSVIWriterHandlers.hpp"
-#include "PSVIUni.hpp"
+#include <xercesc/util/PSVIUni.hpp>
 #include <xercesc/util/XMLUni.hpp>
 #include <xercesc/util/XMLUniDefs.hpp>
 #include <xercesc/util/XMLString.hpp>
diff --git a/src/Makefile.am b/src/Makefile.am
index c90e70ef3bf888a1bd8b175a5df4b87f098d4d77..449c3bcd111c8ed097a83f63dc71452ea0945d18 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -695,6 +695,7 @@ util_headers = \
 	xercesc/util/PanicHandler.hpp \
 	xercesc/util/ParseException.hpp \
 	xercesc/util/PlatformUtils.hpp \
+	xercesc/util/PSVIUni.hpp \
 	xercesc/util/QName.hpp \
 	xercesc/util/RefArrayOf.hpp \
 	xercesc/util/RefArrayOf.c \
@@ -823,6 +824,7 @@ util_sources = \
 	xercesc/util/Mutexes.cpp \
 	xercesc/util/PanicHandler.cpp \
 	xercesc/util/PlatformUtils.cpp \
+	xercesc/util/PSVIUni.cpp \
 	xercesc/util/QName.cpp \
 	xercesc/util/regx/ASCIIRangeFactory.cpp \
 	xercesc/util/regx/BlockRangeFactory.cpp \
diff --git a/samples/src/PSVIWriter/PSVIUni.cpp b/src/xercesc/util/PSVIUni.cpp
similarity index 100%
rename from samples/src/PSVIWriter/PSVIUni.cpp
rename to src/xercesc/util/PSVIUni.cpp
diff --git a/samples/src/PSVIWriter/PSVIUni.hpp b/src/xercesc/util/PSVIUni.hpp
similarity index 98%
rename from samples/src/PSVIWriter/PSVIUni.hpp
rename to src/xercesc/util/PSVIUni.hpp
index 2529ecaa88c3624cf310841397313ae4d37110c8..4183df1aad2665c4f8d518fa137b481aae38bc00 100644
--- a/samples/src/PSVIWriter/PSVIUni.hpp
+++ b/src/xercesc/util/PSVIUni.hpp
@@ -20,9 +20,9 @@
 
 #include <xercesc/util/XercesDefs.hpp>
 
-XERCES_CPP_NAMESPACE_USE
+XERCES_CPP_NAMESPACE_BEGIN
 
-class PSVIUni
+class XMLUTIL_EXPORT PSVIUni
 {
 public :
 
@@ -218,7 +218,7 @@ public :
     static const XMLCh fgTotalDigits[];
     static const XMLCh fgWhiteSpace[];
     
-    	//Namespaces and prefixes
+   	//Namespaces and prefixes
     	
 	static const XMLCh fgNamespaceInfoset[];
 	static const XMLCh fgXsi[];
@@ -230,4 +230,6 @@ public :
 
 };
 
+XERCES_CPP_NAMESPACE_END
+
 #endif