Index: ext/libicpf/src/libicpf/exception.cpp
===================================================================
diff -u -re31dc31ccf2010abee81ddc399d65b57e4803278 -r0185dd929933bee0f578d6ca52aaa605a48c9f89
--- ext/libicpf/src/libicpf/exception.cpp	(.../exception.cpp)	(revision e31dc31ccf2010abee81ddc399d65b57e4803278)
+++ ext/libicpf/src/libicpf/exception.cpp	(.../exception.cpp)	(revision 0185dd929933bee0f578d6ca52aaa605a48c9f89)
@@ -40,6 +40,7 @@
  * \param[in] uiReserved - currently unused; must be 0
  */
 exception::exception(const tchar_t* pszDesc, const tchar_t* pszFilename, const tchar_t* pszFunction, uint_t uiLine, uint_t uiAppCode, uint_t uiSystemCode, uint_t uiReserved) :
+	std::exception(),
 	m_pszDesc(NULL),
 	m_pszFilename(NULL),
 	m_pszFunction(NULL),
@@ -70,6 +71,7 @@
  * \param[in] uiReserved - currently unused; must be 0
  */
 exception::exception(tchar_t* pszDesc, const tchar_t* pszFilename, const tchar_t* pszFunction, uint_t uiLine, uint_t uiAppCode, uint_t uiSystemCode, uint_t uiReserved) :
+	std::exception(),
 	m_pszDesc(pszDesc),
 	m_pszFilename(NULL),
 	m_pszFunction(NULL),
@@ -91,6 +93,7 @@
  * \param[in] rSrc - source exception to copy data from
  */
 exception::exception(const exception& rSrc) :
+	std::exception(rSrc),
 	m_pszDesc(NULL),
 	m_pszFilename(NULL),
 	m_pszFunction(NULL),
Index: ext/libicpf/src/libicpf/exception.h
===================================================================
diff -u -re31dc31ccf2010abee81ddc399d65b57e4803278 -r0185dd929933bee0f578d6ca52aaa605a48c9f89
--- ext/libicpf/src/libicpf/exception.h	(.../exception.h)	(revision e31dc31ccf2010abee81ddc399d65b57e4803278)
+++ ext/libicpf/src/libicpf/exception.h	(.../exception.h)	(revision 0185dd929933bee0f578d6ca52aaa605a48c9f89)
@@ -51,7 +51,7 @@
  *  Exception class thrown by most of the engine functions. Provides user
  *  with an additional formatting and outputting capabilities.
  */
-class LIBICPF_API exception
+class LIBICPF_API exception : public virtual std::exception
 {
 public:
 /** \name Construction/destruction */
Index: ext/libicpf/src/libicpf/libicpf.vc90.vcproj
===================================================================
diff -u -rd06489a5ab447268d887732448146d2826d270f1 -r0185dd929933bee0f578d6ca52aaa605a48c9f89
--- ext/libicpf/src/libicpf/libicpf.vc90.vcproj	(.../libicpf.vc90.vcproj)	(revision d06489a5ab447268d887732448146d2826d270f1)
+++ ext/libicpf/src/libicpf/libicpf.vc90.vcproj	(.../libicpf.vc90.vcproj)	(revision 0185dd929933bee0f578d6ca52aaa605a48c9f89)
@@ -47,7 +47,7 @@
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBICPF_EXPORTS;XML_UNICODE_WCHAR_T;_CRT_SECURE_NO_DEPRECATE;_BIND_TO_CURRENT_VCLIBS_VERSION=1"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
+				RuntimeLibrary="3"
 				TreatWChar_tAsBuiltInType="true"
 				ForceConformanceInForLoopScope="true"
 				UsePrecompiledHeader="0"
@@ -126,7 +126,7 @@
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBICPF_EXPORTS;XML_UNICODE_WCHAR_T;_CRT_SECURE_NO_DEPRECATE;_BIND_TO_CURRENT_VCLIBS_VERSION=1"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
+				RuntimeLibrary="3"
 				TreatWChar_tAsBuiltInType="true"
 				ForceConformanceInForLoopScope="true"
 				UsePrecompiledHeader="0"
@@ -200,7 +200,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBICPF_EXPORTS;XML_UNICODE_WCHAR_T;_CRT_SECURE_NO_DEPRECATE;_BIND_TO_CURRENT_VCLIBS_VERSION=1"
-				RuntimeLibrary="0"
+				RuntimeLibrary="2"
 				TreatWChar_tAsBuiltInType="true"
 				ForceConformanceInForLoopScope="true"
 				UsePrecompiledHeader="0"
@@ -278,7 +278,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBICPF_EXPORTS;XML_UNICODE_WCHAR_T;_CRT_SECURE_NO_DEPRECATE;_BIND_TO_CURRENT_VCLIBS_VERSION=1"
-				RuntimeLibrary="0"
+				RuntimeLibrary="2"
 				TreatWChar_tAsBuiltInType="true"
 				ForceConformanceInForLoopScope="true"
 				UsePrecompiledHeader="0"