diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index cad4d22..c78329f 100644
--- desktop/source/app/app.cxx
+++ desktop/source/app/app.cxx
@@ -350,7 +350,7 @@ ResMgr*                 desktop::Desktop::pResMgr = 0;
 namespace desktop
 {
 
-static SalMainPipeExchangeSignalHandler* pSignalHandler = 0;
+static oslSignalHandler pSignalHandler = 0;
 static sal_Bool _bCrashReporterEnabled = sal_True;
 
 // ----------------------------------------------------------------------------
@@ -659,7 +659,7 @@ void Desktop::Init()
             // disable IPC thread in an instance that is just showing a help message
             OfficeIPCThread::DisableOfficeIPCThread();
         }
-        pSignalHandler = new SalMainPipeExchangeSignalHandler;
+        pSignalHandler = osl_addSignalHandler( SalMainPipeExchangeSignal_impl, NULL );
     }
 }
 
@@ -693,7 +693,7 @@ void Desktop::DeInit()
 
     	OfficeIPCThread::DisableOfficeIPCThread();
 	    if( pSignalHandler )
-    	    DELETEZ( pSignalHandler );
+    	    osl_removeSignalHandler( pSignalHandler );
 	} catch (RuntimeException&) {
 		// someone threw an exception during shutdown
 		// this will leave some garbage behind..
@@ -1281,7 +1281,7 @@ USHORT Desktop::Exception(USHORT nError)
             {
                 OfficeIPCThread::DisableOfficeIPCThread();
                 if( pSignalHandler )
-                    DELETEZ( pSignalHandler );
+                    osl_removeSignalHandler( pSignalHandler );
 
                 if (m_pLockfile != NULL) {
                     m_pLockfile->clean();
diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx
index b67c3fd..95efc2c 100644
--- desktop/source/app/officeipcthread.cxx
+++ desktop/source/app/officeipcthread.cxx
@@ -183,11 +183,11 @@ void ImplPostProcessDocumentsEvent( ProcessDocumentsRequest* pEvent )
 	Application::PostUserEvent( STATIC_LINK( NULL, ProcessEventsClass_Impl, ProcessDocumentsEvent ), pEvent );
 }
 
-OSignalHandler::TSignalAction SAL_CALL SalMainPipeExchangeSignalHandler::signal(TSignalInfo *pInfo)
+oslSignalAction SAL_CALL SalMainPipeExchangeSignal_impl(void * /*pData*/, oslSignalInfo *pInfo)
 {
     if( pInfo->Signal == osl_Signal_Terminate )
 		OfficeIPCThread::DisableOfficeIPCThread();
-	return (TAction_CallNextHandler);
+	return osl_Signal_ActCallNextHdl;
 }
 
 // ----------------------------------------------------------------------------
diff --git a/desktop/source/app/officeipcthread.hxx b/desktop/source/app/officeipcthread.hxx
index 1486974..ec6ed08 100644
--- desktop/source/app/officeipcthread.hxx
+++ desktop/source/app/officeipcthread.hxx
@@ -52,8 +52,8 @@
 #ifndef _THREAD_HXX_
 #include <osl/thread.hxx>
 #endif
-#ifndef _VOS_SIGNAL_HXX_
-#include <vos/signal.hxx>
+#ifndef _OSL_SIGNAL_H_
+#include <osl/signal.h>
 #endif
 #ifndef _RTL_USTRING_HXX_
 #include <rtl/ustring.hxx>
@@ -68,10 +68,7 @@
 namespace desktop
 {
 
-class SalMainPipeExchangeSignalHandler : public vos::OSignalHandler
-{
-    virtual TSignalAction SAL_CALL signal(TSignalInfo *pInfo);
-};
+oslSignalAction SAL_CALL SalMainPipeExchangeSignal_impl(void * /*pData*/, oslSignalInfo *pInfo);
 
 // A request for the current office
 // that was given by command line or by IPC pipe communication.
diff --git a/tools/inc/pch/precompiled_tools.hxx b/tools/inc/pch/precompiled_tools.hxx
index 95aa23b..4d115f3 100644
--- tools/inc/pch/precompiled_tools.hxx
+++ tools/inc/pch/precompiled_tools.hxx
@@ -93,7 +93,7 @@
 
 #include "sal/macros.h"
 #include "osl/mutex.hxx"
-#include "vos/signal.hxx"
+#include "osl/signal.h"
 #include "vos/timer.hxx"
 //---MARKER---
 #endif
diff --git a/tools/source/rc/resmgr.cxx b/tools/source/rc/resmgr.cxx
index e5dcdcf..5283f89 100644
--- tools/source/rc/resmgr.cxx
+++ tools/source/rc/resmgr.cxx
@@ -40,8 +40,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#ifndef _VOS_SIGNAL_HXX_
-#include <vos/signal.hxx>
+#ifndef _OSL_SIGNAL_H_
+#include <osl/signal.h>
 #endif
 
 #ifndef _DEBUG_HXX
@@ -882,18 +882,18 @@ void ResMgr::RscError_Impl( const sal_Char* pMessage, ResMgr* pResMgr,
 
 static void RscException_Impl()
 {
-    switch ( vos::OSignalHandler::raise( OSL_SIGNAL_USER_RESOURCEFAILURE, (void*)"" ) )
+    switch ( osl_raiseSignal( OSL_SIGNAL_USER_RESOURCEFAILURE, (void*)"" ) )
     {
-        case vos::OSignalHandler::TAction_CallNextHandler:
+        case osl_Signal_ActCallNextHdl:
             abort();
 
-        case vos::OSignalHandler::TAction_Ignore:
+        case osl_Signal_ActIgnore:
             return;
 
-        case vos::OSignalHandler::TAction_AbortApplication:
+        case osl_Signal_ActAbortApp:
             abort();
 
-        case vos::OSignalHandler::TAction_KillApplication:
+        case osl_Signal_ActKillApp:
             exit(-1);
     }
 }
diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
index ead4370..75c16fd 100644
--- vcl/source/app/svmain.cxx
+++ vcl/source/app/svmain.cxx
@@ -66,8 +66,8 @@
 #ifndef _SV_SALWTYPE_HXX
 #include <vcl/salwtype.hxx>
 #endif
-#ifndef _VOS_SIGNAL_HXX
-#include <vos/signal.hxx>
+#ifndef _OSL_SIGNAL_H_
+#include <osl/signal.h>
 #endif
 #ifndef _VOS_SOCKET_HXX
 #include <vos/socket.hxx>
@@ -178,15 +178,7 @@ using namespace ::com::sun::star::lang;
 
 // =======================================================================
 
-class ImplVCLExceptionHandler : public ::vos::OSignalHandler
-{
-public:
-    virtual ::vos::OSignalHandler::TSignalAction SAL_CALL signal( ::vos::OSignalHandler::TSignalInfo* pInfo );
-};
-
-// -----------------------------------------------------------------------
-
-::vos::OSignalHandler::TSignalAction SAL_CALL ImplVCLExceptionHandler::signal( ::vos::OSignalHandler::TSignalInfo* pInfo )
+oslSignalAction SAL_CALL VCLExceptionSignal_impl( void * /*pData*/, oslSignalInfo* pInfo )
 {
     static BOOL bIn = FALSE;
 
@@ -235,11 +227,11 @@ public:
             }
             bIn = FALSE;
 
-            return vos::OSignalHandler::TAction_CallNextHandler;
+            return osl_Signal_ActCallNextHdl;
         }
     }
 
-    return vos::OSignalHandler::TAction_CallNextHandler;
+    return osl_Signal_ActCallNextHdl;
 }
 
 // =======================================================================
@@ -308,7 +300,7 @@ BOOL SVMain()
 // before SVInit is called
 static Application *        pOwnSvApp = NULL;
 // Exception handler. pExceptionHandler != NULL => VCL already inited
-ImplVCLExceptionHandler *   pExceptionHandler = NULL;
+oslSignalHandler            pExceptionHandler = NULL;
 
 class Application_Impl : public Application
 {
@@ -411,7 +403,7 @@ BOOL InitVCL( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XM
     pSVData->maGDIData.mpGrfConverter       = new GraphicConverter;
 
     // Exception-Handler setzen
-    pExceptionHandler = new ImplVCLExceptionHandler();
+    pExceptionHandler = osl_addSignalHandler( VCLExceptionSignal_impl, NULL );
 
     // Debug-Daten initialisieren
     DBGGUI_INIT();
@@ -454,7 +446,7 @@ void DeInitVCL()
 
     ImplImageTree::cleanup();
 
-    delete pExceptionHandler;
+    osl_removeSignalHandler( pExceptionHandler );
     pExceptionHandler = NULL;
 
     // Debug Daten zuruecksetzen
diff --git a/vos/inc/vos/signal.hxx b/vos/inc/vos/signal.hxx
deleted file mode 100644
index dd10c07..0000000
--- vos/inc/vos/signal.hxx
+++ /dev/null
@@ -1,112 +0,0 @@
-/*************************************************************************
- *
- *  OpenOffice.org - a multi-platform office productivity suite
- *
- *  $RCSfile: signal.hxx,v $
- *
- *  $Revision: 1.4 $
- *
- *  last change: $Author: hr $ $Date: 2006/06/20 11:17:31 $
- *
- *  The Contents of this file are made available subject to
- *  the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- *    GNU Lesser General Public License Version 2.1
- *    =============================================
- *    Copyright 2005 by Sun Microsystems, Inc.
- *    901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- *    This library is free software; you can redistribute it and/or
- *    modify it under the terms of the GNU Lesser General Public
- *    License version 2.1, as published by the Free Software Foundation.
- *
- *    This library is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *    Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public
- *    License along with this library; if not, write to the Free Software
- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- *    MA  02111-1307  USA
- *
- ************************************************************************/
-
-
-#ifndef _VOS_SIGNAL_HXX_
-#define _VOS_SIGNAL_HXX_
-
-#ifndef _VOS_TYPES_HXX_
-#	include <vos/types.hxx>
-#endif
-#ifndef _VOS_OBJECT_HXX_
-#	include <vos/object.hxx>
-#endif
-#ifndef _OSL_SIGNAL_H_
-#	include <osl/signal.h>
-#endif
-
-namespace vos
-{
-
-extern "C"
-typedef oslSignalAction SignalHandlerFunction_impl(void *, oslSignalInfo *);
-SignalHandlerFunction_impl signalHandlerFunction_impl;
-
-/** OSignalHandler is an objectoriented interface for signal handlers.
-
-	@author  Ralf Hofmann
-	@version 1.0
-*/
-
-class OSignalHandler : public vos::OObject
-{
-	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OSignalHandler, vos));
-
-public:
-
-	enum TSignal
-	{
-		TSignal_System              = osl_Signal_System,
-		TSignal_Terminate           = osl_Signal_Terminate,
-		TSignal_AccessViolation     = osl_Signal_AccessViolation,
-		TSignal_IntegerDivideByZero = osl_Signal_IntegerDivideByZero,
-		TSignal_FloatDivideByZero   = osl_Signal_FloatDivideByZero,
-		TSignal_DebugBreak          = osl_Signal_DebugBreak,
-		TSignal_SignalUser          = osl_Signal_User
-	};
-
-	enum TSignalAction
-	{
-		TAction_CallNextHandler  = osl_Signal_ActCallNextHdl,
-		TAction_Ignore           = osl_Signal_ActIgnore,
-		TAction_AbortApplication = osl_Signal_ActAbortApp,
-		TAction_KillApplication  = osl_Signal_ActKillApp
-	};
-
-	typedef oslSignalInfo TSignalInfo;
-
-	/// Constructor 
-	OSignalHandler();              
-
-	/// Destructor kills thread if neccessary
-	virtual ~OSignalHandler();
-
-	static TSignalAction SAL_CALL raise(sal_Int32 Signal, void *pData = 0);
-
-protected:
-
-	/// Working method which should be overridden.
-	virtual TSignalAction SAL_CALL signal(TSignalInfo *pInfo) = 0;
-
-protected:
-	oslSignalHandler m_hHandler;
-
-    friend oslSignalAction signalHandlerFunction_impl(void *, oslSignalInfo *);
-};
-
-}
-
-#endif // _VOS_SIGNAL_HXX_
-
diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk
index 3093410..1b010f5 100644
--- vos/source/makefile.mk
+++ vos/source/makefile.mk
@@ -55,7 +55,6 @@ SLOFILES= \
 				$(SLO)$/timer.obj       \
 				$(SLO)$/process.obj     \
 				$(SLO)$/security.obj    \
-				$(SLO)$/signal.obj      \
 				$(SLO)$/pipe.obj
 
 
@@ -70,7 +69,6 @@ OBJFILES= \
 				$(OBJ)$/timer.obj       \
 				$(OBJ)$/process.obj     \
 				$(OBJ)$/security.obj    \
-				$(OBJ)$/signal.obj      \
 				$(OBJ)$/pipe.obj
 
 .ENDIF
diff --git a/vos/source/signal.cxx b/vos/source/signal.cxx
deleted file mode 100644
index 3a576b1..0000000
--- vos/source/signal.cxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
- *
- *  OpenOffice.org - a multi-platform office productivity suite
- *
- *  $RCSfile: signal.cxx,v $
- *
- *  $Revision: 1.4 $
- *
- *  last change: $Author: hr $ $Date: 2006/06/20 11:21:56 $
- *
- *  The Contents of this file are made available subject to
- *  the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- *    GNU Lesser General Public License Version 2.1
- *    =============================================
- *    Copyright 2005 by Sun Microsystems, Inc.
- *    901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- *    This library is free software; you can redistribute it and/or
- *    modify it under the terms of the GNU Lesser General Public
- *    License version 2.1, as published by the Free Software Foundation.
- *
- *    This library is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *    Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public
- *    License along with this library; if not, write to the Free Software
- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- *    MA  02111-1307  USA
- *
- ************************************************************************/
-
-
-#include <osl/diagnose.h>
-#include <vos/object.hxx>
-#include <vos/signal.hxx>
-
-using namespace vos;
-
-oslSignalAction vos::signalHandlerFunction_impl(
-    void * pthis, oslSignalInfo * pInfo)
-{
-	vos::OSignalHandler* pThis= (vos::OSignalHandler*)pthis;
-
-	return ((oslSignalAction)pThis->signal(pInfo));
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// Thread class
-
-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OSignalHandler, vos), 
-						VOS_NAMESPACE(OSignalHandler, vos), 
-						VOS_NAMESPACE(OObject, vos), 0);
-
-OSignalHandler::OSignalHandler() 
-{
-	m_hHandler = osl_addSignalHandler(signalHandlerFunction_impl, this);
-}
-
-OSignalHandler::~OSignalHandler() 
-{
-	osl_removeSignalHandler(m_hHandler);
-}
-
-OSignalHandler::TSignalAction OSignalHandler::raise(sal_Int32 Signal, void *pData)
-{
-	return (TSignalAction)osl_raiseSignal(Signal, pData);
-}
-
