Date: prev next · Thread: first prev next last
2010 Archives by date, by thread · List index


The attached patches are pending... I am submitting them to the list
for comments or objections before pushing them.

The patches address the following:

VCLXDevice, VCLXGraphics and derived class use a mutex that is really
a reference to the SolarMutex. They declare a function GetMutex() to
access tis reference to the SolarMutex, and the implementation
use
osl::SolarGuard aGuard(GetMutex())
to take a guard on the solar mutex.

This is confusing because some other class in that framework also implement
a GetMutex() function, but which this time return a regular Mutex.

Since this particular use of GetMutex() is to get the SolarMutex, and
invariably this is then used to take a Guard on the SolarMutex,
all these uses are replaced by a SolarMutexGuard object, which encapsulate
that behavior.


Norbert
From a34be98d16aa6a0f821d6969d6b7e76594e97049 Mon Sep 17 00:00:00 2001
From: Norbert Thiebaud <nthiebaud@gmail.com>
Date: Sun, 31 Oct 2010 22:03:57 -0500
Subject: [PATCH] remove a confusing use of GetMutex() when a SolarMutexGuard is really meant

VCLXDevice, VCLXGraphics and derived class use a mutex that is really
a reference to the SolarMutex. They declare a function GetMutex() to
access tis reference to the SolarMutex, and the implementation
use
osl::SolarGuard aGuard(GetMutex())
to take a guad on the solar mutex.

This is confusing because some other class in that framework also implement
a GetMutex() function, but which this time return a regular Mutex.

Since this particular use of GetMutex() is to get the SolarMutex, and
invariably this is then used to take a Guard on the SolarMutex,
all these uses are replaced by a SolarMutexGuard object, which encapsulate
that behavior.
---
 svtools/source/toolpanel/paneltabbarpeer.cxx     |    5 +-
 svtools/source/toolpanel/toolpaneldeckpeer.cxx   |    5 +-
 svtools/source/toolpanel/toolpaneldrawerpeer.cxx |    3 +-
 svtools/source/uno/svtxgridcontrol.cxx           |   24 +-
 svtools/source/uno/treecontrolpeer.cxx           |   67 ++--
 svtools/source/uno/unoiface.cxx                  |  166 ++++----
 toolkit/inc/toolkit/awt/vclxdevice.hxx           |    2 -
 toolkit/inc/toolkit/awt/vclxgraphics.hxx         |    4 -
 toolkit/inc/toolkit/awt/vclxtopwindow.hxx        |    2 -
 toolkit/source/awt/stylesettings.cxx             |   14 +-
 toolkit/source/awt/stylesettings.hxx             |    2 +-
 toolkit/source/awt/vclxcontainer.cxx             |   15 +-
 toolkit/source/awt/vclxdevice.cxx                |   26 +-
 toolkit/source/awt/vclxdialog.cxx                |   23 +-
 toolkit/source/awt/vclxdialog.hxx                |    1 -
 toolkit/source/awt/vclxfixedline.cxx             |   22 +-
 toolkit/source/awt/vclxgraphics.cxx              |   60 ++--
 toolkit/source/awt/vclxplugin.cxx                |    9 +-
 toolkit/source/awt/vclxscroller.cxx              |    7 +-
 toolkit/source/awt/vclxspinbutton.cxx            |   38 +-
 toolkit/source/awt/vclxsplitter.cxx              |    3 +-
 toolkit/source/awt/vclxsystemdependentwindow.cxx |    3 +-
 toolkit/source/awt/vclxtabcontrol.cxx            |    7 +-
 toolkit/source/awt/vclxtabpage.cxx               |    5 +-
 toolkit/source/awt/vclxtopwindow.cxx             |   27 +-
 toolkit/source/awt/vclxwindow.cxx                |  137 +++---
 toolkit/source/awt/vclxwindows.cxx               |  552 +++++++++++-----------
 toolkit/source/awt/xsimpleanimation.cxx          |    6 +-
 toolkit/source/awt/xthrobber.cxx                 |    7 +-
 toolkit/source/layout/core/localized-string.cxx  |    5 +-
 30 files changed, 616 insertions(+), 631 deletions(-)

diff --git a/svtools/source/toolpanel/paneltabbarpeer.cxx 
b/svtools/source/toolpanel/paneltabbarpeer.cxx
index 9da8cce..5d65a72 100644
--- a/svtools/source/toolpanel/paneltabbarpeer.cxx
+++ b/svtools/source/toolpanel/paneltabbarpeer.cxx
@@ -35,6 +35,7 @@
 /** === end UNO includes === **/
 
 #include <tools/diagnose_ex.h>
+#include <vcl/svapp.hxx>
 
 //........................................................................
 namespace svt
@@ -75,7 +76,7 @@ namespace svt
     
//------------------------------------------------------------------------------------------------------------------
     Reference< XAccessibleContext > PanelTabBarPeer::CreateAccessibleContext()
     {
-        ::osl::SolarGuard aSolarGuard( GetMutex() );
+        SolarMutexGuard aSolarGuard;
         if ( m_pTabBar == NULL )
             throw DisposedException( ::rtl::OUString(), *this );
 
@@ -91,7 +92,7 @@ namespace svt
     void SAL_CALL PanelTabBarPeer::dispose() throw(RuntimeException)
     {
         {
-            ::osl::SolarGuard aSolarGuard( GetMutex() );
+            SolarMutexGuard aSolarGuard;
             m_pTabBar = NULL;
         }
         VCLXWindow::dispose();
diff --git a/svtools/source/toolpanel/toolpaneldeckpeer.cxx 
b/svtools/source/toolpanel/toolpaneldeckpeer.cxx
index 00b3034..c6f239f 100644
--- a/svtools/source/toolpanel/toolpaneldeckpeer.cxx
+++ b/svtools/source/toolpanel/toolpaneldeckpeer.cxx
@@ -35,6 +35,7 @@
 /** === end UNO includes === **/
 
 #include <tools/diagnose_ex.h>
+#include <vcl/svapp.hxx>
 
 
//......................................................................................................................
 namespace svt
@@ -75,7 +76,7 @@ namespace svt
     
//------------------------------------------------------------------------------------------------------------------
     Reference< XAccessibleContext > ToolPanelDeckPeer::CreateAccessibleContext()
     {
-        ::osl::SolarGuard aSolarGuard( GetMutex() );
+        SolarMutexGuard aSolarGuard;
         if ( m_pDeck == NULL )
             throw DisposedException( ::rtl::OUString(), *this );
 
@@ -89,7 +90,7 @@ namespace svt
     void SAL_CALL ToolPanelDeckPeer::dispose() throw(RuntimeException)
     {
         {
-            ::osl::SolarGuard aSolarGuard( GetMutex() );
+            SolarMutexGuard aSolarGuard;
             m_pDeck = NULL;
         }
         VCLXWindow::dispose();
diff --git a/svtools/source/toolpanel/toolpaneldrawerpeer.cxx 
b/svtools/source/toolpanel/toolpaneldrawerpeer.cxx
index 5f08e3e..6c25027 100644
--- a/svtools/source/toolpanel/toolpaneldrawerpeer.cxx
+++ b/svtools/source/toolpanel/toolpaneldrawerpeer.cxx
@@ -39,6 +39,7 @@
 #include <toolkit/awt/vclxaccessiblecomponent.hxx>
 #include <unotools/accessiblestatesethelper.hxx>
 #include <vcl/vclevent.hxx>
+#include <vcl/svapp.hxx>
 
 
//......................................................................................................................
 namespace svt
@@ -134,7 +135,7 @@ namespace svt
     
//------------------------------------------------------------------------------------------------------------------
     Reference< XAccessibleContext > ToolPanelDrawerPeer::CreateAccessibleContext()
     {
-        ::osl::SolarGuard aSolarGuard( GetMutex() );
+        SolarMutexGuard aSolarGuard;
         return new ToolPanelDrawerContext( *this );
     }
 
diff --git a/svtools/source/uno/svtxgridcontrol.cxx b/svtools/source/uno/svtxgridcontrol.cxx
index bf3ec22..1806d38 100644
--- a/svtools/source/uno/svtxgridcontrol.cxx
+++ b/svtools/source/uno/svtxgridcontrol.cxx
@@ -51,6 +51,8 @@
 #include <com/sun/star/util/Color.hpp>
 #include <com/sun/star/awt/FontDescriptor.hpp>
 
+#include <vcl/svapp.hxx>
+
 using ::rtl::OUString;
 using namespace ::svt::table;
 using namespace ::com::sun::star::uno;
@@ -68,7 +70,7 @@ SVTXGridControl::SVTXGridControl()
     m_xDataModel(0),
     m_xColumnModel(0),
     m_bHasColumnHeaders(false),
-    m_bHasRowHeaders(false), 
+    m_bHasRowHeaders(false),
     m_bVScroll(false),
     m_bHScroll(false),
     m_bUpdate(false),
@@ -124,7 +126,7 @@ void SAL_CALL SVTXGridControl::removeSelectionListener(const ::com::sun::star::u
 
 void SVTXGridControl::setProperty( const ::rtl::OUString& PropertyName, const Any& aValue) 
throw(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TableControl* pTable = (TableControl*)GetWindow();
     switch( GetPropertyId( PropertyName ) )
@@ -363,7 +365,7 @@ void SVTXGridControl::setProperty( const ::rtl::OUString& PropertyName, const An
 
 Any SVTXGridControl::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     const sal_uInt16 nPropId = GetPropertyId( PropertyName );
     TableControl* pTable = (TableControl*)GetWindow();
@@ -422,7 +424,7 @@ void SVTXGridControl::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
 }
 void SAL_CALL SVTXGridControl::setVisible( sal_Bool bVisible ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     TableControl* pTable = (TableControl*)GetWindow();
     if ( pTable )
     {
@@ -432,13 +434,13 @@ void SAL_CALL SVTXGridControl::setVisible( sal_Bool bVisible ) 
throw(::com::sun:
 }
 void SAL_CALL SVTXGridControl::setFocus() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if ( GetWindow())
         GetWindow()->GrabFocus();
 }
 void SAL_CALL SVTXGridControl::rowAdded(const ::com::sun::star::awt::grid::GridDataEvent& Event ) 
throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     std::vector< Any > newRow;
     Sequence< Any > rawRowData = Event.rowData;
@@ -486,7 +488,7 @@ void SAL_CALL SVTXGridControl::rowAdded(const ::com::sun::star::awt::grid::GridD
 
 void SAL_CALL SVTXGridControl::rowRemoved(const ::com::sun::star::awt::grid::GridDataEvent& Event 
) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TableControl* pTable = (TableControl*)GetWindow();
     if(Event.index == -1)
@@ -529,7 +531,7 @@ void SAL_CALL SVTXGridControl::rowRemoved(const ::com::sun::star::awt::grid::Gri
 
 void SAL_CALL  SVTXGridControl::columnChanged(const ::com::sun::star::awt::grid::GridColumnEvent& 
Event ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TableControl* pTable = (TableControl*)GetWindow();
     if(Event.valueName == rtl::OUString::createFromAscii("ColumnResize"))
@@ -578,7 +580,7 @@ void SAL_CALL  SVTXGridControl::columnChanged(const ::com::sun::star::awt::grid:
 }
 void SAL_CALL  SVTXGridControl::dataChanged(const ::com::sun::star::awt::grid::GridDataEvent& 
Event ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TableControl* pTable = (TableControl*)GetWindow();
     if(Event.valueName == rtl::OUString::createFromAscii("RowHeight"))
@@ -795,7 +797,7 @@ void SAL_CALL SVTXGridControl::selectRow(::sal_Int32 index) throw (::com::sun::s
                 return;
         }
         else if(eSelMode == SINGLE_SELECTION)
-        {      
+        {
             if(!selectedRows.empty())
             {
                 if(!isSelectedIndex(index))
@@ -819,7 +821,7 @@ void SAL_CALL SVTXGridControl::selectColumn(::sal_Int32 x) throw (::com::sun::st
 }
 void SVTXGridControl::dispose() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::lang::EventObject aObj;
     aObj.Source = (::cppu::OWeakObject*)this;
diff --git a/svtools/source/uno/treecontrolpeer.cxx b/svtools/source/uno/treecontrolpeer.cxx
index 96a5e0a..c9df6a9 100644
--- a/svtools/source/uno/treecontrolpeer.cxx
+++ b/svtools/source/uno/treecontrolpeer.cxx
@@ -43,6 +43,7 @@
 
 #include <rtl/ref.hxx>
 #include <vcl/graph.hxx>
+#include <vcl/svapp.hxx>
 #include <svtools/svtreebx.hxx>
 
 #include <map>
@@ -487,7 +488,7 @@ UnoTreeListBoxImpl& TreeControlPeer::getTreeListBoxOrThrow() const throw (Runtim
 
 void TreeControlPeer::ChangeNodesSelection( const Any& rSelection, bool bSelect, bool 
bSetSelection ) throw( RuntimeException, IllegalArgumentException )
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
 
@@ -549,7 +550,7 @@ void TreeControlPeer::ChangeNodesSelection( const Any& rSelection, bool bSelect,
 
 sal_Bool SAL_CALL TreeControlPeer::select( const Any& rSelection ) throw 
(IllegalArgumentException, RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     ChangeNodesSelection( rSelection, true, true );
     return sal_True;
 }
@@ -558,7 +559,7 @@ sal_Bool SAL_CALL TreeControlPeer::select( const Any& rSelection ) throw (Illega
 
 Any SAL_CALL TreeControlPeer::getSelection() throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
 
@@ -625,7 +626,7 @@ void SAL_CALL TreeControlPeer::removeSelection( const Any& rSelection ) throw (I
 
 void SAL_CALL TreeControlPeer::clearSelection() throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     getTreeListBoxOrThrow().SelectAll( FALSE );
 }
 
@@ -633,7 +634,7 @@ void SAL_CALL TreeControlPeer::clearSelection() throw (RuntimeException)
 
 sal_Int32 SAL_CALL TreeControlPeer::getSelectionCount() throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return getTreeListBoxOrThrow().GetSelectionCount();
 }
 
@@ -679,7 +680,7 @@ Any SAL_CALL TreeSelectionEnumeration::nextElement() throw (NoSuchElementExcepti
 
 Reference< XEnumeration > SAL_CALL TreeControlPeer::createSelectionEnumeration() throw 
(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     
@@ -703,7 +704,7 @@ Reference< XEnumeration > SAL_CALL TreeControlPeer::createSelectionEnumeration()
 
 Reference< XEnumeration > SAL_CALL TreeControlPeer::createReverseSelectionEnumeration() throw 
(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     
@@ -729,7 +730,7 @@ Reference< XEnumeration > SAL_CALL TreeControlPeer::createReverseSelectionEnumer
 
 OUString SAL_CALL TreeControlPeer::getDefaultExpandedGraphicURL() throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return msDefaultExpandedGraphicURL;
 }
 
@@ -737,7 +738,7 @@ OUString SAL_CALL TreeControlPeer::getDefaultExpandedGraphicURL() throw (::com::
 
 void SAL_CALL TreeControlPeer::setDefaultExpandedGraphicURL( const ::rtl::OUString& 
sDefaultExpandedGraphicURL ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if( msDefaultExpandedGraphicURL != sDefaultExpandedGraphicURL )
     {
         if( sDefaultExpandedGraphicURL.getLength() )
@@ -767,7 +768,7 @@ void SAL_CALL TreeControlPeer::setDefaultExpandedGraphicURL( const ::rtl::OUStri
 
 OUString SAL_CALL TreeControlPeer::getDefaultCollapsedGraphicURL() throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return msDefaultCollapsedGraphicURL;
 }
 
@@ -775,7 +776,7 @@ OUString SAL_CALL TreeControlPeer::getDefaultCollapsedGraphicURL() throw (::com:
 
 void SAL_CALL TreeControlPeer::setDefaultCollapsedGraphicURL( const ::rtl::OUString& 
sDefaultCollapsedGraphicURL ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if( msDefaultCollapsedGraphicURL != sDefaultCollapsedGraphicURL )
     {
         if( sDefaultCollapsedGraphicURL.getLength() )
@@ -805,7 +806,7 @@ void SAL_CALL TreeControlPeer::setDefaultCollapsedGraphicURL( const ::rtl::OUStr
 
 sal_Bool SAL_CALL TreeControlPeer::isNodeExpanded( const Reference< XTreeNode >& xNode ) throw 
(RuntimeException, IllegalArgumentException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     UnoTreeListEntry* pEntry = getEntry( xNode );
@@ -816,7 +817,7 @@ sal_Bool SAL_CALL TreeControlPeer::isNodeExpanded( const Reference< XTreeNode >&
 
 sal_Bool SAL_CALL TreeControlPeer::isNodeCollapsed( const Reference< XTreeNode >& xNode ) throw 
(RuntimeException, IllegalArgumentException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return !isNodeExpanded( xNode );
 }
 
@@ -824,7 +825,7 @@ sal_Bool SAL_CALL TreeControlPeer::isNodeCollapsed( const Reference< XTreeNode >
 
 void SAL_CALL TreeControlPeer::makeNodeVisible( const Reference< XTreeNode >& xNode ) throw 
(RuntimeException, ExpandVetoException, IllegalArgumentException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     UnoTreeListEntry* pEntry = getEntry( xNode );
@@ -836,7 +837,7 @@ void SAL_CALL TreeControlPeer::makeNodeVisible( const Reference< XTreeNode >& xN
 
 sal_Bool SAL_CALL TreeControlPeer::isNodeVisible( const Reference< XTreeNode >& xNode ) throw 
(RuntimeException, IllegalArgumentException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     UnoTreeListEntry* pEntry = getEntry( xNode );
@@ -847,7 +848,7 @@ sal_Bool SAL_CALL TreeControlPeer::isNodeVisible( const Reference< XTreeNode >&
 
 void SAL_CALL TreeControlPeer::expandNode( const Reference< XTreeNode >& xNode ) throw 
(RuntimeException, ExpandVetoException, IllegalArgumentException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     UnoTreeListEntry* pEntry = getEntry( xNode );
@@ -859,7 +860,7 @@ void SAL_CALL TreeControlPeer::expandNode( const Reference< XTreeNode >& xNode )
 
 void SAL_CALL TreeControlPeer::collapseNode( const Reference< XTreeNode >& xNode ) throw 
(RuntimeException, ExpandVetoException, IllegalArgumentException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     UnoTreeListEntry* pEntry = getEntry( xNode );
@@ -885,7 +886,7 @@ void SAL_CALL TreeControlPeer::removeTreeExpansionListener( const Reference< XTr
 
 Reference< XTreeNode > SAL_CALL TreeControlPeer::getNodeForLocation( sal_Int32 x, sal_Int32 y ) 
throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
 
@@ -903,7 +904,7 @@ Reference< XTreeNode > SAL_CALL TreeControlPeer::getNodeForLocation( sal_Int32 x
 
 Reference< XTreeNode > SAL_CALL TreeControlPeer::getClosestNodeForLocation( sal_Int32 x, sal_Int32 
y ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
 
@@ -921,7 +922,7 @@ Reference< XTreeNode > SAL_CALL TreeControlPeer::getClosestNodeForLocation( sal_
 
 awt::Rectangle SAL_CALL TreeControlPeer::getNodeRect( const Reference< XTreeNode >& i_Node ) throw 
(IllegalArgumentException, RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     UnoTreeListEntry* pEntry = getEntry( i_Node, true );
@@ -934,7 +935,7 @@ awt::Rectangle SAL_CALL TreeControlPeer::getNodeRect( const Reference< XTreeNode
 
 sal_Bool SAL_CALL TreeControlPeer::isEditing(  ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     return rTree.IsEditingActive() ? sal_True : sal_False;
@@ -944,7 +945,7 @@ sal_Bool SAL_CALL TreeControlPeer::isEditing(  ) throw (RuntimeException)
 
 sal_Bool SAL_CALL TreeControlPeer::stopEditing() throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     if( rTree.IsEditingActive() )
@@ -962,7 +963,7 @@ sal_Bool SAL_CALL TreeControlPeer::stopEditing() throw (RuntimeException)
 
 void SAL_CALL TreeControlPeer::cancelEditing(  ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     rTree.EndEditing(FALSE);
@@ -972,7 +973,7 @@ void SAL_CALL TreeControlPeer::cancelEditing(  ) throw (RuntimeException)
 
 void SAL_CALL TreeControlPeer::startEditingAtNode( const Reference< XTreeNode >& xNode ) throw 
(IllegalArgumentException, RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     UnoTreeListEntry* pEntry = getEntry( xNode );
@@ -1042,7 +1043,7 @@ bool TreeControlPeer::onEditedEntry( UnoTreeListEntry* pEntry, const 
XubString&
 
 void SAL_CALL TreeControlPeer::treeNodesChanged( const 
::com::sun::star::awt::tree::TreeDataModelEvent& rEvent ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mnEditLock != 0 )
         return;
@@ -1052,7 +1053,7 @@ void SAL_CALL TreeControlPeer::treeNodesChanged( const 
::com::sun::star::awt::tr
 
 void SAL_CALL TreeControlPeer::treeNodesInserted( const 
::com::sun::star::awt::tree::TreeDataModelEvent& rEvent ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mnEditLock != 0 )
         return;
@@ -1062,7 +1063,7 @@ void SAL_CALL TreeControlPeer::treeNodesInserted( const 
::com::sun::star::awt::t
 
 void SAL_CALL TreeControlPeer::treeNodesRemoved( const 
::com::sun::star::awt::tree::TreeDataModelEvent& rEvent ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mnEditLock != 0 )
         return;
@@ -1072,7 +1073,7 @@ void SAL_CALL TreeControlPeer::treeNodesRemoved( const 
::com::sun::star::awt::tr
 
 void SAL_CALL TreeControlPeer::treeStructureChanged( const 
::com::sun::star::awt::tree::TreeDataModelEvent& rEvent ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mnEditLock != 0 )
         return;
@@ -1242,7 +1243,7 @@ OUString TreeControlPeer::getEntryString( const Any& rValue )
 void SAL_CALL TreeControlPeer::disposing( const ::com::sun::star::lang::EventObject& ) 
throw(::com::sun::star::uno::RuntimeException)
 {
     // model is disposed, so we clear our tree
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
     rTree.Clear();
     mxDataModel.clear();
@@ -1282,7 +1283,7 @@ void TreeControlPeer::onChangeDataModel( UnoTreeListBoxImpl& rTree, const 
Refere
 
 ::com::sun::star::awt::Size TreeControlPeer::getMinimumSize() throw(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aSz;
 /* todo
@@ -1300,7 +1301,7 @@ void TreeControlPeer::onChangeDataModel( UnoTreeListBoxImpl& rTree, const 
Refere
 
 ::com::sun::star::awt::Size TreeControlPeer::calcAdjustedSize( const ::com::sun::star::awt::Size& 
rNewSize ) throw(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aSz = rNewSize;
 /* todo
@@ -1317,7 +1318,7 @@ void TreeControlPeer::onChangeDataModel( UnoTreeListBoxImpl& rTree, const 
Refere
 
 void TreeControlPeer::setProperty( const ::rtl::OUString& PropertyName, const Any& aValue) 
throw(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
 
@@ -1420,7 +1421,7 @@ void TreeControlPeer::setProperty( const ::rtl::OUString& PropertyName, const 
An
 
 Any TreeControlPeer::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     const sal_uInt16 nPropId = GetPropertyId( PropertyName );
     if( (nPropId >= BASEPROPERTY_TREE_START) && (nPropId <= BASEPROPERTY_TREE_END) )
diff --git a/svtools/source/uno/unoiface.cxx b/svtools/source/uno/unoiface.cxx
index 74a3912..932a94e 100644
--- a/svtools/source/uno/unoiface.cxx
+++ b/svtools/source/uno/unoiface.cxx
@@ -226,7 +226,7 @@ void VCLXMultiLineEdit::removeTextListener( const ::com::sun::star::uno::Referen
 
 void VCLXMultiLineEdit::setText( const ::rtl::OUString& aText ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     MultiLineEdit* pEdit = (MultiLineEdit*)GetWindow();
     if ( pEdit )
@@ -243,7 +243,7 @@ void VCLXMultiLineEdit::setText( const ::rtl::OUString& aText ) throw(::com::sun
 
 void VCLXMultiLineEdit::insertText( const ::com::sun::star::awt::Selection& rSel, const 
::rtl::OUString& aText ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     MultiLineEdit* pEdit = (MultiLineEdit*)GetWindow();
     if ( pEdit )
@@ -255,7 +255,7 @@ void VCLXMultiLineEdit::insertText( const ::com::sun::star::awt::Selection& rSel
 
 ::rtl::OUString VCLXMultiLineEdit::getText() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aText;
     MultiLineEdit* pEdit = (MultiLineEdit*)GetWindow();
@@ -266,7 +266,7 @@ void VCLXMultiLineEdit::insertText( const ::com::sun::star::awt::Selection& rSel
 
 ::rtl::OUString VCLXMultiLineEdit::getSelectedText() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aText;
     MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
@@ -278,7 +278,7 @@ void VCLXMultiLineEdit::insertText( const ::com::sun::star::awt::Selection& rSel
 
 void VCLXMultiLineEdit::setSelection( const ::com::sun::star::awt::Selection& aSelection ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
     if ( pMultiLineEdit )
@@ -289,7 +289,7 @@ void VCLXMultiLineEdit::setSelection( const ::com::sun::star::awt::Selection& aS
 
 ::com::sun::star::awt::Selection VCLXMultiLineEdit::getSelection() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Selection aSel;
     MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
@@ -303,7 +303,7 @@ void VCLXMultiLineEdit::setSelection( const ::com::sun::star::awt::Selection& aS
 
 sal_Bool VCLXMultiLineEdit::isEditable() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
     return ( pMultiLineEdit && !pMultiLineEdit->IsReadOnly() && pMultiLineEdit->IsEnabled() ) ? 
sal_True : sal_False;
@@ -311,7 +311,7 @@ sal_Bool VCLXMultiLineEdit::isEditable() throw(::com::sun::star::uno::RuntimeExc
 
 void VCLXMultiLineEdit::setEditable( sal_Bool bEditable ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
     if ( pMultiLineEdit )
@@ -320,7 +320,7 @@ void VCLXMultiLineEdit::setEditable( sal_Bool bEditable ) throw(::com::sun::star
 
 void VCLXMultiLineEdit::setMaxTextLen( sal_Int16 nLen ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
     if ( pMultiLineEdit )
@@ -329,7 +329,7 @@ void VCLXMultiLineEdit::setMaxTextLen( sal_Int16 nLen ) throw(::com::sun::star::
 
 sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
     return pMultiLineEdit ? (sal_Int16)pMultiLineEdit->GetMaxTextLen() : (sal_Int16)0;
@@ -337,7 +337,7 @@ sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::Runtim
 
 ::rtl::OUString VCLXMultiLineEdit::getTextLines() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aText;
     MultiLineEdit* pEdit = (MultiLineEdit*)GetWindow();
@@ -348,7 +348,7 @@ sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::Runtim
 
 ::com::sun::star::awt::Size VCLXMultiLineEdit::getMinimumSize() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aSz;
     MultiLineEdit* pEdit = (MultiLineEdit*) GetWindow();
@@ -364,7 +364,7 @@ sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::Runtim
 
 ::com::sun::star::awt::Size VCLXMultiLineEdit::calcAdjustedSize( const 
::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aSz = rNewSize;
     MultiLineEdit* pEdit = (MultiLineEdit*) GetWindow();
@@ -375,7 +375,7 @@ sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::Runtim
 
 ::com::sun::star::awt::Size VCLXMultiLineEdit::getMinimumSize( sal_Int16 nCols, sal_Int16 nLines ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aSz;
     MultiLineEdit* pEdit = (MultiLineEdit*) GetWindow();
@@ -386,7 +386,7 @@ sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::Runtim
 
 void VCLXMultiLineEdit::getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     nCols = nLines = 0;
     MultiLineEdit* pEdit = (MultiLineEdit*) GetWindow();
@@ -423,7 +423,7 @@ void VCLXMultiLineEdit::ProcessWindowEvent( const VclWindowEvent& rVclWindowEven
 
 void VCLXMultiLineEdit::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     MultiLineEdit* pMultiLineEdit = (MultiLineEdit*)GetWindow();
     if ( pMultiLineEdit )
@@ -479,7 +479,7 @@ void VCLXMultiLineEdit::setProperty( const ::rtl::OUString& PropertyName, const
 
 ::com::sun::star::uno::Any VCLXMultiLineEdit::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     MultiLineEdit* pMultiLineEdit = (MultiLineEdit*)GetWindow();
@@ -523,7 +523,7 @@ void VCLXMultiLineEdit::setProperty( const ::rtl::OUString& PropertyName, const
 
 void SAL_CALL VCLXMultiLineEdit::setFocus(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     // don't grab the focus if we already have it. Reason is that the only thing which the edit
     // does is forwarding the focus to it's text window. This text window then does a "select all".
@@ -578,7 +578,7 @@ IMPL_XTYPEPROVIDER_END
 
 void SAL_CALL VCLXFileControl::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FileControl* pControl = (FileControl*)GetWindow();
     if ( pControl )
@@ -628,7 +628,7 @@ void VCLXFileControl::removeTextListener( const ::com::sun::star::uno::Reference
 
 void VCLXFileControl::setText( const ::rtl::OUString& aText ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -643,7 +643,7 @@ void VCLXFileControl::setText( const ::rtl::OUString& aText ) throw(::com::sun::
 
 void VCLXFileControl::insertText( const ::com::sun::star::awt::Selection& rSel, const 
::rtl::OUString& aText ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FileControl* pFileControl = (FileControl*) GetWindow();
     if ( pFileControl )
@@ -655,7 +655,7 @@ void VCLXFileControl::insertText( const ::com::sun::star::awt::Selection& rSel,
 
 ::rtl::OUString VCLXFileControl::getText() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aText;
     Window* pWindow = GetWindow();
@@ -666,7 +666,7 @@ void VCLXFileControl::insertText( const ::com::sun::star::awt::Selection& rSel,
 
 ::rtl::OUString VCLXFileControl::getSelectedText() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aText;
     FileControl* pFileControl = (FileControl*) GetWindow();
@@ -678,7 +678,7 @@ void VCLXFileControl::insertText( const ::com::sun::star::awt::Selection& rSel,
 
 void VCLXFileControl::setSelection( const ::com::sun::star::awt::Selection& aSelection ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FileControl* pFileControl = (FileControl*) GetWindow();
     if ( pFileControl )
@@ -687,7 +687,7 @@ void VCLXFileControl::setSelection( const ::com::sun::star::awt::Selection& aSel
 
 ::com::sun::star::awt::Selection VCLXFileControl::getSelection() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Selection aSel;
     FileControl* pFileControl = (FileControl*) GetWindow();
@@ -701,7 +701,7 @@ void VCLXFileControl::setSelection( const ::com::sun::star::awt::Selection& aSel
 
 sal_Bool VCLXFileControl::isEditable() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FileControl* pFileControl = (FileControl*) GetWindow();
     return ( pFileControl && !pFileControl->GetEdit().IsReadOnly() && 
pFileControl->GetEdit().IsEnabled() ) ? sal_True : sal_False;
@@ -709,7 +709,7 @@ sal_Bool VCLXFileControl::isEditable() throw(::com::sun::star::uno::RuntimeExcep
 
 void VCLXFileControl::setEditable( sal_Bool bEditable ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FileControl* pFileControl = (FileControl*) GetWindow();
     if ( pFileControl )
@@ -718,7 +718,7 @@ void VCLXFileControl::setEditable( sal_Bool bEditable ) throw(::com::sun::star::
 
 void VCLXFileControl::setMaxTextLen( sal_Int16 nLen ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FileControl* pFileControl = (FileControl*) GetWindow();
     if ( pFileControl )
@@ -727,7 +727,7 @@ void VCLXFileControl::setMaxTextLen( sal_Int16 nLen ) throw(::com::sun::star::un
 
 sal_Int16 VCLXFileControl::getMaxTextLen() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FileControl* pFileControl = (FileControl*) GetWindow();
     return pFileControl ? pFileControl->GetEdit().GetMaxTextLen() : 0;
@@ -745,7 +745,7 @@ IMPL_LINK( VCLXFileControl, ModifyHdl, Edit*, EMPTYARG )
 
 ::com::sun::star::awt::Size VCLXFileControl::getMinimumSize() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aSz;
     FileControl* pControl = (FileControl*) GetWindow();
@@ -767,7 +767,7 @@ IMPL_LINK( VCLXFileControl, ModifyHdl, Edit*, EMPTYARG )
 
 ::com::sun::star::awt::Size VCLXFileControl::calcAdjustedSize( const ::com::sun::star::awt::Size& 
rNewSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aSz =rNewSize;
     FileControl* pControl = (FileControl*) GetWindow();
@@ -782,7 +782,7 @@ IMPL_LINK( VCLXFileControl, ModifyHdl, Edit*, EMPTYARG )
 
 ::com::sun::star::awt::Size VCLXFileControl::getMinimumSize( sal_Int16 nCols, sal_Int16 ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aSz;
     FileControl* pControl = (FileControl*) GetWindow();
@@ -796,7 +796,7 @@ IMPL_LINK( VCLXFileControl, ModifyHdl, Edit*, EMPTYARG )
 
 void VCLXFileControl::getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     nCols = 0;
     nLines = 1;
@@ -847,7 +847,7 @@ void SVTXFormattedField::SetWindow( Window* _pWindow )
 // --------------------------------------------------------------------------------------
 void SVTXFormattedField::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -972,7 +972,7 @@ void SVTXFormattedField::setProperty( const ::rtl::OUString& PropertyName, const
 // --------------------------------------------------------------------------------------
 ::com::sun::star::uno::Any SVTXFormattedField::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aReturn;
 
@@ -1433,7 +1433,7 @@ void SVTXRoadmap::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
     {
         case VCLEVENT_ROADMAP_ITEMSELECTED:
         {
-            ::osl::SolarGuard aGuard( GetMutex() );
+            SolarMutexGuard aGuard;
             ::svt::ORoadmap* pField = GetRoadmap();
             if ( pField )
             {
@@ -1455,7 +1455,7 @@ void SVTXRoadmap::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
 
 void SVTXRoadmap::propertyChange( const ::com::sun::star::beans::PropertyChangeEvent& evt ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     ::svt::ORoadmap* pField = GetRoadmap();
     if ( pField )
     {
@@ -1524,7 +1524,7 @@ RMItemData SVTXRoadmap::GetRMItemData( const 
::com::sun::star::container::Contai
 
 void SVTXRoadmap::elementInserted( const ::com::sun::star::container::ContainerEvent& _rEvent 
)throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     ::svt::ORoadmap* pField = GetRoadmap();
     if ( pField )
     {
@@ -1537,7 +1537,7 @@ void SVTXRoadmap::elementInserted( const 
::com::sun::star::container::ContainerE
 
 void SVTXRoadmap::elementRemoved( const ::com::sun::star::container::ContainerEvent& _rEvent 
)throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     ::svt::ORoadmap* pField = GetRoadmap();
     if ( pField )
     {
@@ -1551,7 +1551,7 @@ void SVTXRoadmap::elementRemoved( const 
::com::sun::star::container::ContainerEv
 
 void SVTXRoadmap::elementReplaced( const ::com::sun::star::container::ContainerEvent& _rEvent 
)throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     ::svt::ORoadmap* pField = GetRoadmap();
     if ( pField )
     {
@@ -1567,7 +1567,7 @@ void SVTXRoadmap::elementReplaced( const 
::com::sun::star::container::ContainerE
 // --------------------------------------------------------------------------------------
 void SVTXRoadmap::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::svt::ORoadmap* pField = GetRoadmap();
     if ( pField )
@@ -1622,7 +1622,7 @@ void SVTXRoadmap::setProperty( const ::rtl::OUString& PropertyName, const 
::com:
 // --------------------------------------------------------------------------------------
 ::com::sun::star::uno::Any SVTXRoadmap::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aReturn;
 
@@ -1696,7 +1696,7 @@ IMPL_XTYPEPROVIDER_END
 
 void SVTXNumericField::setValue( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1705,7 +1705,7 @@ void SVTXNumericField::setValue( double Value ) 
throw(::com::sun::star::uno::Run
 
 double SVTXNumericField::getValue() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetValue() : 0;
@@ -1713,7 +1713,7 @@ double SVTXNumericField::getValue() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 void SVTXNumericField::setMin( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1722,7 +1722,7 @@ void SVTXNumericField::setMin( double Value ) 
throw(::com::sun::star::uno::Runti
 
 double SVTXNumericField::getMin() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetMinValue() : 0;
@@ -1730,7 +1730,7 @@ double SVTXNumericField::getMin() 
throw(::com::sun::star::uno::RuntimeException)
 
 void SVTXNumericField::setMax( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1739,7 +1739,7 @@ void SVTXNumericField::setMax( double Value ) 
throw(::com::sun::star::uno::Runti
 
 double SVTXNumericField::getMax() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetMaxValue() : 0;
@@ -1747,7 +1747,7 @@ double SVTXNumericField::getMax() 
throw(::com::sun::star::uno::RuntimeException)
 
 void SVTXNumericField::setFirst( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1756,7 +1756,7 @@ void SVTXNumericField::setFirst( double Value ) 
throw(::com::sun::star::uno::Run
 
 double SVTXNumericField::getFirst() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetSpinFirst() : 0;
@@ -1764,7 +1764,7 @@ double SVTXNumericField::getFirst() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 void SVTXNumericField::setLast( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1773,7 +1773,7 @@ void SVTXNumericField::setLast( double Value ) 
throw(::com::sun::star::uno::Runt
 
 double SVTXNumericField::getLast() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetSpinLast() : 0;
@@ -1781,7 +1781,7 @@ double SVTXNumericField::getLast() 
throw(::com::sun::star::uno::RuntimeException
 
 void SVTXNumericField::setSpinSize( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1790,7 +1790,7 @@ void SVTXNumericField::setSpinSize( double Value ) 
throw(::com::sun::star::uno::
 
 double SVTXNumericField::getSpinSize() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetSpinSize() : 0;
@@ -1798,7 +1798,7 @@ double SVTXNumericField::getSpinSize() 
throw(::com::sun::star::uno::RuntimeExcep
 
 void SVTXNumericField::setDecimalDigits( sal_Int16 Value ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1807,7 +1807,7 @@ void SVTXNumericField::setDecimalDigits( sal_Int16 Value ) 
throw(::com::sun::sta
 
 sal_Int16 SVTXNumericField::getDecimalDigits() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetDecimalDigits() : 0;
@@ -1815,7 +1815,7 @@ sal_Int16 SVTXNumericField::getDecimalDigits() 
throw(::com::sun::star::uno::Runt
 
 void SVTXNumericField::setStrictFormat( sal_Bool bStrict ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1824,7 +1824,7 @@ void SVTXNumericField::setStrictFormat( sal_Bool bStrict ) 
throw(::com::sun::sta
 
 sal_Bool SVTXNumericField::isStrictFormat() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->IsStrictFormat() : sal_False;
@@ -1862,7 +1862,7 @@ IMPL_XTYPEPROVIDER_END
 
 void SVTXCurrencyField::setValue( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1871,7 +1871,7 @@ void SVTXCurrencyField::setValue( double Value ) 
throw(::com::sun::star::uno::Ru
 
 double SVTXCurrencyField::getValue() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetValue() : 0;
@@ -1879,7 +1879,7 @@ double SVTXCurrencyField::getValue() 
throw(::com::sun::star::uno::RuntimeExcepti
 
 void SVTXCurrencyField::setMin( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1888,7 +1888,7 @@ void SVTXCurrencyField::setMin( double Value ) 
throw(::com::sun::star::uno::Runt
 
 double SVTXCurrencyField::getMin() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetMinValue() : 0;
@@ -1896,7 +1896,7 @@ double SVTXCurrencyField::getMin() 
throw(::com::sun::star::uno::RuntimeException
 
 void SVTXCurrencyField::setMax( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1905,7 +1905,7 @@ void SVTXCurrencyField::setMax( double Value ) 
throw(::com::sun::star::uno::Runt
 
 double SVTXCurrencyField::getMax() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetMaxValue() : 0;
@@ -1913,7 +1913,7 @@ double SVTXCurrencyField::getMax() 
throw(::com::sun::star::uno::RuntimeException
 
 void SVTXCurrencyField::setFirst( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1922,7 +1922,7 @@ void SVTXCurrencyField::setFirst( double Value ) 
throw(::com::sun::star::uno::Ru
 
 double SVTXCurrencyField::getFirst() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetSpinFirst() : 0;
@@ -1930,7 +1930,7 @@ double SVTXCurrencyField::getFirst() 
throw(::com::sun::star::uno::RuntimeExcepti
 
 void SVTXCurrencyField::setLast( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1939,7 +1939,7 @@ void SVTXCurrencyField::setLast( double Value ) 
throw(::com::sun::star::uno::Run
 
 double SVTXCurrencyField::getLast() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetSpinLast() : 0;
@@ -1947,7 +1947,7 @@ double SVTXCurrencyField::getLast() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 void SVTXCurrencyField::setSpinSize( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1956,7 +1956,7 @@ void SVTXCurrencyField::setSpinSize( double Value ) 
throw(::com::sun::star::uno:
 
 double SVTXCurrencyField::getSpinSize() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetSpinSize() : 0;
@@ -1964,7 +1964,7 @@ double SVTXCurrencyField::getSpinSize() 
throw(::com::sun::star::uno::RuntimeExce
 
 void SVTXCurrencyField::setDecimalDigits( sal_Int16 Value ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1973,7 +1973,7 @@ void SVTXCurrencyField::setDecimalDigits( sal_Int16 Value ) 
throw(::com::sun::st
 
 sal_Int16 SVTXCurrencyField::getDecimalDigits() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->GetDecimalDigits() : 0;
@@ -1981,7 +1981,7 @@ sal_Int16 SVTXCurrencyField::getDecimalDigits() 
throw(::com::sun::star::uno::Run
 
 void SVTXCurrencyField::setStrictFormat( sal_Bool bStrict ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     if ( pField )
@@ -1990,7 +1990,7 @@ void SVTXCurrencyField::setStrictFormat( sal_Bool bStrict ) 
throw(::com::sun::st
 
 sal_Bool SVTXCurrencyField::isStrictFormat() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormattedField* pField = GetFormattedField();
     return pField ? pField->IsStrictFormat() : sal_False;
@@ -1998,7 +1998,7 @@ sal_Bool SVTXCurrencyField::isStrictFormat() 
throw(::com::sun::star::uno::Runtim
 
 void SVTXCurrencyField::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aReturn;
 
@@ -2038,7 +2038,7 @@ void SVTXCurrencyField::setProperty( const ::rtl::OUString& PropertyName, 
const
 
 ::com::sun::star::uno::Any SVTXCurrencyField::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aReturn;
 
@@ -2159,7 +2159,7 @@ IMPL_XTYPEPROVIDER_END
 // ::com::sun::star::awt::XProgressBar
 void VCLXProgressBar::setForegroundColor( sal_Int32 nColor ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -2171,7 +2171,7 @@ void VCLXProgressBar::setForegroundColor( sal_Int32 nColor ) 
throw(::com::sun::s
 
 void VCLXProgressBar::setBackgroundColor( sal_Int32 nColor ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -2185,7 +2185,7 @@ void VCLXProgressBar::setBackgroundColor( sal_Int32 nColor ) 
throw(::com::sun::s
 
 void VCLXProgressBar::setValue( sal_Int32 nValue ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     m_nValue = nValue;
     ImplUpdateValue();
@@ -2193,7 +2193,7 @@ void VCLXProgressBar::setValue( sal_Int32 nValue ) 
throw(::com::sun::star::uno::
 
 void VCLXProgressBar::setRange( sal_Int32 nMin, sal_Int32 nMax ) 
throw(::com::sun::star::uno::RuntimeException )
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( nMin < nMax )
     {
@@ -2213,7 +2213,7 @@ void VCLXProgressBar::setRange( sal_Int32 nMin, sal_Int32 nMax ) 
throw(::com::su
 
 sal_Int32 VCLXProgressBar::getValue() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     return m_nValue;
 }
@@ -2221,7 +2221,7 @@ sal_Int32 VCLXProgressBar::getValue() 
throw(::com::sun::star::uno::RuntimeExcept
 // ::com::sun::star::awt::VclWindowPeer
 void VCLXProgressBar::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ProgressBar* pProgressBar = (ProgressBar*)GetWindow();
     if ( pProgressBar )
@@ -2279,7 +2279,7 @@ void VCLXProgressBar::setProperty( const ::rtl::OUString& PropertyName, const 
::
 
 ::com::sun::star::uno::Any VCLXProgressBar::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     ProgressBar* pProgressBar = (ProgressBar*)GetWindow();
diff --git a/toolkit/inc/toolkit/awt/vclxdevice.hxx b/toolkit/inc/toolkit/awt/vclxdevice.hxx
index d47c883..aca44ed 100644
--- a/toolkit/inc/toolkit/awt/vclxdevice.hxx
+++ b/toolkit/inc/toolkit/awt/vclxdevice.hxx
@@ -58,7 +58,6 @@ class TOOLKIT_DLLPUBLIC VCLXDevice :  public ::com::sun::star::awt::XDevice,
     friend class VCLXGraphics;
 
 private:
-    ::osl::SolarMutex&      mrMutex;  // Reference to SolarMutex
     OutputDevice*                      mpOutputDevice;
 
 public:
@@ -66,7 +65,6 @@ public:
     sal_uInt32                         nFlags;
 
 protected:
-    ::osl::SolarMutex&       GetMutex() { return mrMutex; }
     void                                       DestroyOutputDevice();
 
 public:
diff --git a/toolkit/inc/toolkit/awt/vclxgraphics.hxx b/toolkit/inc/toolkit/awt/vclxgraphics.hxx
index 2572484..ffbe999 100644
--- a/toolkit/inc/toolkit/awt/vclxgraphics.hxx
+++ b/toolkit/inc/toolkit/awt/vclxgraphics.hxx
@@ -61,7 +61,6 @@ class VCLXGraphics :  public ::com::sun::star::awt::XGraphics,
                         public ::cppu::OWeakObject
 {
 private:
-    osl::SolarMutex&    mrMutex;       // Reference to SolarMutex
     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice> mxDevice;        // nur um 
bei getDevice() immer das gleiche zurueckzugeben
 
     OutputDevice*      mpOutputDevice;
@@ -73,9 +72,6 @@ private:
     RasterOp           meRasterOp;
     Region*                    mpClipRegion;
 
-protected:
-    osl::SolarMutex&    GetMutex() { return mrMutex; }
-
 public:
                     VCLXGraphics();
                     ~VCLXGraphics();
diff --git a/toolkit/inc/toolkit/awt/vclxtopwindow.hxx b/toolkit/inc/toolkit/awt/vclxtopwindow.hxx
index 2792b40..076ea92 100644
--- a/toolkit/inc/toolkit/awt/vclxtopwindow.hxx
+++ b/toolkit/inc/toolkit/awt/vclxtopwindow.hxx
@@ -55,7 +55,6 @@ protected:
 
     bool isSystemDependentWindowPeer() const { return m_bWHWND; }
 
-    virtual ::osl::SolarMutex& GetMutexImpl() = 0;
     virtual Window* GetWindowImpl() = 0;
     virtual ::cppu::OInterfaceContainerHelper& GetTopWindowListenersImpl() = 0;
 
@@ -96,7 +95,6 @@ class VCLXTopWindow: public VCLXTopWindow_Base,
                      public VCLXContainer
 {
 protected:
-    virtual osl::SolarMutex& GetMutexImpl();
     virtual Window* GetWindowImpl();
     virtual ::cppu::OInterfaceContainerHelper& GetTopWindowListenersImpl();
 
diff --git a/toolkit/source/awt/stylesettings.cxx b/toolkit/source/awt/stylesettings.cxx
index 077ddbc..9e74947 100644
--- a/toolkit/source/awt/stylesettings.cxx
+++ b/toolkit/source/awt/stylesettings.cxx
@@ -39,6 +39,7 @@
 #include <osl/mutex.hxx>
 #include <vcl/window.hxx>
 #include <vcl/settings.hxx>
+#include <vcl/svapp.hxx>
 
 
//......................................................................................................................
 namespace toolkit
@@ -69,13 +70,11 @@ namespace toolkit
     
//==================================================================================================================
     struct WindowStyleSettings_Data
     {
-        ::osl::SolarMutex&                      rMutex;
         VCLXWindow*                         pOwningWindow;
         ::cppu::OInterfaceContainerHelper   aStyleChangeListeners;
 
-        WindowStyleSettings_Data( ::osl::SolarMutex& i_rWindowMutex, ::osl::Mutex& 
i_rListenerMutex, VCLXWindow& i_rOwningWindow )
-            :rMutex( i_rWindowMutex )
-            ,pOwningWindow( &i_rOwningWindow )
+        WindowStyleSettings_Data( ::osl::Mutex& i_rListenerMutex, VCLXWindow& i_rOwningWindow )
+            : pOwningWindow( &i_rOwningWindow )
             ,aStyleChangeListeners( i_rListenerMutex )
         {
         }
@@ -106,7 +105,6 @@ namespace toolkit
     {
     public:
         StyleMethodGuard( WindowStyleSettings_Data& i_rData )
-            :m_aGuard( i_rData.rMutex )
         {
             if ( i_rData.pOwningWindow == NULL )
                 throw DisposedException();
@@ -117,15 +115,15 @@ namespace toolkit
         }
 
     private:
-        ::osl::SolarGuard   m_aGuard;
+        SolarMutexGuard  m_aGuard;
     };
 
     
//==================================================================================================================
     //= WindowStyleSettings
     
//==================================================================================================================
     
//------------------------------------------------------------------------------------------------------------------
-    WindowStyleSettings::WindowStyleSettings( ::osl::SolarMutex& i_rWindowMutex, ::osl::Mutex& 
i_rListenerMutex, VCLXWindow& i_rOwningWindow )
-        :m_pData( new WindowStyleSettings_Data( i_rWindowMutex, i_rListenerMutex, i_rOwningWindow 
) )
+    WindowStyleSettings::WindowStyleSettings(::osl::Mutex& i_rListenerMutex, VCLXWindow& 
i_rOwningWindow )
+        :m_pData( new WindowStyleSettings_Data(i_rListenerMutex, i_rOwningWindow ) )
     {
         Window* pWindow = i_rOwningWindow.GetWindow();
         if ( !pWindow )
diff --git a/toolkit/source/awt/stylesettings.hxx b/toolkit/source/awt/stylesettings.hxx
index f9a1dff..b79969f 100644
--- a/toolkit/source/awt/stylesettings.hxx
+++ b/toolkit/source/awt/stylesettings.hxx
@@ -57,7 +57,7 @@ namespace toolkit
     class WindowStyleSettings : public WindowStyleSettings_Base
     {
     public:
-        WindowStyleSettings( ::osl::SolarMutex& i_rWindowMutex, ::osl::Mutex& i_rListenerMutex, 
VCLXWindow& i_rOwningWindow );
+        WindowStyleSettings( ::osl::Mutex& i_rListenerMutex, VCLXWindow& i_rOwningWindow );
         ~WindowStyleSettings();
 
         void dispose();
diff --git a/toolkit/source/awt/vclxcontainer.cxx b/toolkit/source/awt/vclxcontainer.cxx
index a21234e..935ae1b 100644
--- a/toolkit/source/awt/vclxcontainer.cxx
+++ b/toolkit/source/awt/vclxcontainer.cxx
@@ -37,6 +37,7 @@
 #include <rtl/memory.h>
 #include <rtl/uuid.h>
 
+#include <vcl/svapp.hxx>
 #include <vcl/window.hxx>
 #include <tools/debug.hxx>
 
@@ -77,21 +78,21 @@ IMPL_XTYPEPROVIDER_END
 // ::com::sun::star::awt::XVclContainer
 void VCLXContainer::addVclContainerListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XVclContainerListener >& rxListener ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     GetContainerListeners().addInterface( rxListener );
 }
 
 void VCLXContainer::removeVclContainerListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XVclContainerListener >& rxListener ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     GetContainerListeners().removeInterface( rxListener );
 }
 
 ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow 
VCLXContainer::getWindows(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     // Bei allen Childs das Container-Interface abfragen...
     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XWindow > > aSeq;
@@ -119,7 +120,7 @@ void VCLXContainer::removeVclContainerListener( const ::com::sun::star::uno::Ref
 // ::com::sun::star::awt::XVclContainerPeer
 void VCLXContainer::enableDialogControl( sal_Bool bEnable ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -135,7 +136,7 @@ void VCLXContainer::enableDialogControl( sal_Bool bEnable ) throw(::com::sun::st
 
 void VCLXContainer::setTabOrder( const ::com::sun::star::uno::Sequence< 
::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > >& Components, const 
::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& Tabs, sal_Bool bGroupControl ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_uInt32 nCount = Components.getLength();
     DBG_ASSERT( nCount == (sal_uInt32)Tabs.getLength(), "setTabOrder: TabCount != ComponentCount" 
);
@@ -180,7 +181,7 @@ void VCLXContainer::setTabOrder( const ::com::sun::star::uno::Sequence< ::com::s
 
 void VCLXContainer::setGroup( const ::com::sun::star::uno::Sequence< 
::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > >& Components ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_uInt32 nCount = Components.getLength();
     const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > * pComps = 
Components.getConstArray();
@@ -234,4 +235,4 @@ void VCLXContainer::setGroup( const ::com::sun::star::uno::Sequence< ::com::sun:
     }
 }
 
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/awt/vclxdevice.cxx b/toolkit/source/awt/vclxdevice.cxx
index 4faed3b..661d237 100644
--- a/toolkit/source/awt/vclxdevice.cxx
+++ b/toolkit/source/awt/vclxdevice.cxx
@@ -53,7 +53,7 @@
 //     ----------------------------------------------------
 //     class VCLXDevice
 //     ----------------------------------------------------
-VCLXDevice::VCLXDevice() : mrMutex( Application::GetSolarMutex() )
+VCLXDevice::VCLXDevice()
 {
     mpOutputDevice = NULL;
     nFlags = 0;
@@ -112,7 +112,7 @@ IMPL_XTYPEPROVIDER_END
 // ::com::sun::star::awt::XDevice,
 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics > VCLXDevice::createGraphics(  
) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics > xRef;
 
@@ -124,7 +124,7 @@ IMPL_XTYPEPROVIDER_END
 
 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice > VCLXDevice::createDevice( 
sal_Int32 nWidth, sal_Int32 nHeight ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice >  xRef;
     if ( GetOutputDevice() )
@@ -140,7 +140,7 @@ IMPL_XTYPEPROVIDER_END
 
 ::com::sun::star::awt::DeviceInfo VCLXDevice::getInfo() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::DeviceInfo aInfo;
 
@@ -191,7 +191,7 @@ IMPL_XTYPEPROVIDER_END
 
 ::com::sun::star::uno::Sequence< ::com::sun::star::awt::FontDescriptor > 
VCLXDevice::getFontDescriptors(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Sequence< ::com::sun::star::awt::FontDescriptor> aFonts;
     if( mpOutputDevice )
@@ -210,7 +210,7 @@ IMPL_XTYPEPROVIDER_END
 
 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > VCLXDevice::getFont( const 
::com::sun::star::awt::FontDescriptor& rDescriptor ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont >  xRef;
     if( mpOutputDevice )
@@ -224,7 +224,7 @@ IMPL_XTYPEPROVIDER_END
 
 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap > VCLXDevice::createBitmap( 
sal_Int32 nX, sal_Int32 nY, sal_Int32 nWidth, sal_Int32 nHeight ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >  xBmp;
     if( mpOutputDevice )
@@ -240,7 +240,7 @@ IMPL_XTYPEPROVIDER_END
 
 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDisplayBitmap > 
VCLXDevice::createDisplayBitmap( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XBitmap >& rxBitmap ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     BitmapEx aBmp = VCLUnoHelper::GetBitmap( rxBitmap );
     VCLXBitmap* pBmp = new VCLXBitmap;
@@ -252,7 +252,7 @@ IMPL_XTYPEPROVIDER_END
 
 VCLXVirtualDevice::~VCLXVirtualDevice()
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     DestroyOutputDevice();
 }
@@ -265,7 +265,7 @@ VCLXVirtualDevice::~VCLXVirtualDevice()
 ::com::sun::star::awt::Point SAL_CALL VCLXDevice::convertPointToLogic( const 
::com::sun::star::awt::Point& aPoint, ::sal_Int16 TargetUnit ) throw 
(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
 {
     (void)aPoint;
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if (TargetUnit == com::sun::star::util::MeasureUnit::PERCENT )
     {
         // percentage not allowed here
@@ -290,7 +290,7 @@ VCLXVirtualDevice::~VCLXVirtualDevice()
 ::com::sun::star::awt::Point SAL_CALL VCLXDevice::convertPointToPixel( const 
::com::sun::star::awt::Point& aPoint, ::sal_Int16 SourceUnit ) throw 
(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
 {
     (void)aPoint;
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if (SourceUnit == com::sun::star::util::MeasureUnit::PERCENT ||
         SourceUnit == com::sun::star::util::MeasureUnit::PIXEL )
     {
@@ -314,7 +314,7 @@ VCLXVirtualDevice::~VCLXVirtualDevice()
 ::com::sun::star::awt::Size SAL_CALL VCLXDevice::convertSizeToLogic( const 
::com::sun::star::awt::Size& aSize, ::sal_Int16 TargetUnit ) throw 
(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
 {
     (void)aSize;
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if (TargetUnit == com::sun::star::util::MeasureUnit::PERCENT)
     {
         // percentage not allowed here
@@ -339,7 +339,7 @@ VCLXVirtualDevice::~VCLXVirtualDevice()
 ::com::sun::star::awt::Size SAL_CALL VCLXDevice::convertSizeToPixel( const 
::com::sun::star::awt::Size& aSize, ::sal_Int16 SourceUnit ) throw 
(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
 {
     (void)aSize;
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if (SourceUnit == com::sun::star::util::MeasureUnit::PERCENT ||
         SourceUnit == com::sun::star::util::MeasureUnit::PIXEL)
     {
diff --git a/toolkit/source/awt/vclxdialog.cxx b/toolkit/source/awt/vclxdialog.cxx
index 89d7a6a..2e70e3b 100644
--- a/toolkit/source/awt/vclxdialog.cxx
+++ b/toolkit/source/awt/vclxdialog.cxx
@@ -80,11 +80,6 @@ VCLXDialog::~VCLXDialog()
     DBG_DTOR( VCLXDialog, NULL );
 }
 
-osl::SolarMutex& VCLXDialog::GetMutexImpl()
-{
-    return VCLXWindow::GetMutex();
-}
-
 Window* VCLXDialog::GetWindowImpl()
 {
     return VCLXWindow::GetWindow();
@@ -102,7 +97,7 @@ IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXDialog, VCLXWindow, VCLXDialog_Base );
 void SAL_CALL VCLXDialog::dispose() throw(::com::sun::star::uno::RuntimeException)
 {
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         ::com::sun::star::lang::EventObject aDisposeEvent;
         aDisposeEvent.Source = W3K_EXPLICIT_CAST (*this);
@@ -147,7 +142,7 @@ void SAL_CALL VCLXDialog::allocateArea( const css::awt::Rectangle &rArea )
 
 void VCLXDialog::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
 {
-    ::osl::ClearableSolarGuard aGuard( GetMutex() );
+    SolarMutexClearableGuard aGuard;
 
     switch ( _rVclWindowEvent.GetId() )
     {
@@ -162,7 +157,7 @@ void VCLXDialog::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
 
 void SAL_CALL VCLXDialog::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any &Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -179,7 +174,7 @@ void SAL_CALL VCLXDialog::setProperty( const ::rtl::OUString& PropertyName, cons
 
 ::com::sun::star::uno::Any SAL_CALL VCLXDialog::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aReturn;
     if ( GetWindow() )
@@ -200,7 +195,7 @@ void SAL_CALL VCLXDialog::setProperty( const ::rtl::OUString& PropertyName, cons
 
 void VCLXDialog::setTitle( const ::rtl::OUString& Title ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -209,7 +204,7 @@ void VCLXDialog::setTitle( const ::rtl::OUString& Title ) throw(::com::sun::star
 
 void VCLXDialog::setHelpId( sal_Int32 id ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -218,7 +213,7 @@ void VCLXDialog::setHelpId( sal_Int32 id ) throw(::com::sun::star::uno::RuntimeE
 
 ::rtl::OUString VCLXDialog::getTitle() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aTitle;
     Window* pWindow = GetWindow();
@@ -229,7 +224,7 @@ void VCLXDialog::setHelpId( sal_Int32 id ) throw(::com::sun::star::uno::RuntimeE
 
 sal_Int16 VCLXDialog::execute() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int16 nRet = 0;
     if ( GetWindow() )
@@ -253,7 +248,7 @@ sal_Int16 VCLXDialog::execute() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXDialog::endDialog( sal_Int32 nResult ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( nResult == BUTTONID_HELP )
     {
diff --git a/toolkit/source/awt/vclxdialog.hxx b/toolkit/source/awt/vclxdialog.hxx
index a01abdf..8a01c57 100644
--- a/toolkit/source/awt/vclxdialog.hxx
+++ b/toolkit/source/awt/vclxdialog.hxx
@@ -54,7 +54,6 @@ private:
     VCLXDialog& operator=( const VCLXDialog& ); // never implemented
 
 protected:
-    osl::SolarMutex& GetMutexImpl();
     Window* GetWindowImpl();
     ::cppu::OInterfaceContainerHelper& GetTopWindowListenersImpl();
 
diff --git a/toolkit/source/awt/vclxfixedline.cxx b/toolkit/source/awt/vclxfixedline.cxx
index ad0f044..495ccb8 100644
--- a/toolkit/source/awt/vclxfixedline.cxx
+++ b/toolkit/source/awt/vclxfixedline.cxx
@@ -33,6 +33,7 @@
 #include <toolkit/helper/vclunohelper.hxx>
 #include <tools/debug.hxx>
 #include <vcl/fixed.hxx>
+#include <vcl/svapp.hxx>
 
 #include "forward.hxx"
 
@@ -63,7 +64,7 @@ IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXFixedLine, VCLXWindow );
 void SAL_CALL VCLXFixedLine::dispose() throw(RuntimeException)
 {
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         EventObject aDisposeEvent;
         aDisposeEvent.Source = W3K_EXPLICIT_CAST (*this);
@@ -80,23 +81,14 @@ void SAL_CALL VCLXFixedLine::dispose() throw(RuntimeException)
 
 void VCLXFixedLine::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
 {
-    ::osl::ClearableSolarGuard aGuard( GetMutex() );
-/*
-    switch ( _rVclWindowEvent.GetId() )
-    {
-        default:
-            aGuard.clear();
-*/
-            VCLXWindow::ProcessWindowEvent( _rVclWindowEvent );
-/*
-            break;
-    }
-*/
+    SolarMutexGuard aGuard;
+
+    VCLXWindow::ProcessWindowEvent( _rVclWindowEvent );
 }
 
 void SAL_CALL VCLXFixedLine::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) 
throw(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -113,7 +105,7 @@ void SAL_CALL VCLXFixedLine::setProperty( const ::rtl::OUString& PropertyName, c
 
 Any SAL_CALL VCLXFixedLine::getProperty( const ::rtl::OUString& PropertyName ) 
throw(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Any aReturn;
     if ( GetWindow() )
diff --git a/toolkit/source/awt/vclxgraphics.cxx b/toolkit/source/awt/vclxgraphics.cxx
index 4f7e3a0..dc3dc87 100644
--- a/toolkit/source/awt/vclxgraphics.cxx
+++ b/toolkit/source/awt/vclxgraphics.cxx
@@ -65,7 +65,7 @@ IMPL_XTYPEPROVIDER_START( VCLXGraphics )
     getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics>* ) NULL )
 IMPL_XTYPEPROVIDER_END
 
-VCLXGraphics::VCLXGraphics() : mrMutex( Application::GetSolarMutex() )
+VCLXGraphics::VCLXGraphics()
 {
     mpOutputDevice = NULL;
     mpClipRegion = NULL;
@@ -142,7 +142,7 @@ void VCLXGraphics::InitOutputDevice( sal_uInt16 nFlags )
 
 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice > VCLXGraphics::getDevice() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( !mxDevice.is() && mpOutputDevice )
     {
@@ -155,7 +155,7 @@ void VCLXGraphics::InitOutputDevice( sal_uInt16 nFlags )
 
 ::com::sun::star::awt::SimpleFontMetric VCLXGraphics::getFontMetric() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::SimpleFontMetric aM;
     if( mpOutputDevice )
@@ -168,56 +168,56 @@ void VCLXGraphics::InitOutputDevice( sal_uInt16 nFlags )
 
 void VCLXGraphics::setFont( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont 
& rxFont ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     maFont = VCLUnoHelper::CreateFont( rxFont );
 }
 
 void VCLXGraphics::selectFont( const ::com::sun::star::awt::FontDescriptor& rDescription ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     maFont = VCLUnoHelper::CreateFont( rDescription, Font() );
 }
 
 void VCLXGraphics::setTextColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     maTextColor = Color( (sal_uInt32)nColor );
 }
 
 void VCLXGraphics::setTextFillColor( sal_Int32 nColor ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     maTextFillColor = Color( (sal_uInt32)nColor );
 }
 
 void VCLXGraphics::setLineColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     maLineColor = Color( (sal_uInt32)nColor );
 }
 
 void VCLXGraphics::setFillColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     maFillColor = Color( (sal_uInt32)nColor );
 }
 
 void VCLXGraphics::setRasterOp( ::com::sun::star::awt::RasterOperation eROP ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     meRasterOp = (RasterOp)eROP;
 }
 
 void VCLXGraphics::setClipRegion( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XRegion >& rxRegion ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     delete mpClipRegion;
     if ( rxRegion.is() )
@@ -228,7 +228,7 @@ void VCLXGraphics::setClipRegion( const ::com::sun::star::uno::Reference< ::com:
 
 void VCLXGraphics::intersectClipRegion( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XRegion >& rxRegion ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( rxRegion.is() )
     {
@@ -242,7 +242,7 @@ void VCLXGraphics::intersectClipRegion( const ::com::sun::star::uno::Reference<
 
 void VCLXGraphics::push(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
 
     if( mpOutputDevice )
@@ -251,7 +251,7 @@ void VCLXGraphics::push(  ) throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXGraphics::pop(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
 
     if( mpOutputDevice )
@@ -260,7 +260,7 @@ void VCLXGraphics::pop(  ) throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXGraphics::copy( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice >& 
rxSource, sal_Int32 nSourceX, sal_Int32 nSourceY, sal_Int32 nSourceWidth, sal_Int32 nSourceHeight, 
sal_Int32 nDestX, sal_Int32 nDestY, sal_Int32 nDestWidth, sal_Int32 nDestHeight ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( mpOutputDevice )
     {
@@ -277,7 +277,7 @@ void VCLXGraphics::copy( const ::com::sun::star::uno::Reference< ::com::sun::sta
 
 void VCLXGraphics::draw( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XDisplayBitmap >& rxBitmapHandle, sal_Int32 nSourceX, sal_Int32 nSourceY, 
sal_Int32 nSourceWidth, sal_Int32 nSourceHeight, sal_Int32 nDestX, sal_Int32 nDestY, sal_Int32 
nDestWidth, sal_Int32 nDestHeight ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -309,7 +309,7 @@ void VCLXGraphics::draw( const ::com::sun::star::uno::Reference< ::com::sun::sta
 
 void VCLXGraphics::drawPixel( sal_Int32 x, sal_Int32 y ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -320,7 +320,7 @@ void VCLXGraphics::drawPixel( sal_Int32 x, sal_Int32 y ) throw(::com::sun::star:
 
 void VCLXGraphics::drawLine( sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -331,7 +331,7 @@ void VCLXGraphics::drawLine( sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32
 
 void VCLXGraphics::drawRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -342,7 +342,7 @@ void VCLXGraphics::drawRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int3
 
 void VCLXGraphics::drawRoundedRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, 
sal_Int32 nHorzRound, sal_Int32 nVertRound ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -353,7 +353,7 @@ void VCLXGraphics::drawRoundedRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, s
 
 void VCLXGraphics::drawPolyLine( const ::com::sun::star::uno::Sequence< sal_Int32 >& DataX, const 
::com::sun::star::uno::Sequence< sal_Int32 >& DataY ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -364,7 +364,7 @@ void VCLXGraphics::drawPolyLine( const ::com::sun::star::uno::Sequence< sal_Int3
 
 void VCLXGraphics::drawPolygon( const ::com::sun::star::uno::Sequence< sal_Int32 >& DataX, const 
::com::sun::star::uno::Sequence< sal_Int32 >& DataY ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -375,7 +375,7 @@ void VCLXGraphics::drawPolygon( const ::com::sun::star::uno::Sequence< sal_Int32
 
 void VCLXGraphics::drawPolyPolygon( const ::com::sun::star::uno::Sequence< 
::com::sun::star::uno::Sequence< sal_Int32 > >& DataX, const ::com::sun::star::uno::Sequence< 
::com::sun::star::uno::Sequence< sal_Int32 > >& DataY ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -391,7 +391,7 @@ void VCLXGraphics::drawPolyPolygon( const ::com::sun::star::uno::Sequence< ::com
 
 void VCLXGraphics::drawEllipse( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -402,7 +402,7 @@ void VCLXGraphics::drawEllipse( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_I
 
 void VCLXGraphics::drawArc( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 
x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -413,7 +413,7 @@ void VCLXGraphics::drawArc( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32
 
 void VCLXGraphics::drawPie( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 
x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -424,7 +424,7 @@ void VCLXGraphics::drawPie( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32
 
 void VCLXGraphics::drawChord( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, 
sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -435,7 +435,7 @@ void VCLXGraphics::drawChord( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int
 
 void VCLXGraphics::drawGradient( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, 
const ::com::sun::star::awt::Gradient& rGradient ) throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -454,7 +454,7 @@ void VCLXGraphics::drawGradient( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_
 
 void VCLXGraphics::drawText( sal_Int32 x, sal_Int32 y, const ::rtl::OUString& rText ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
@@ -465,7 +465,7 @@ void VCLXGraphics::drawText( sal_Int32 x, sal_Int32 y, const ::rtl::OUString& rT
 
 void VCLXGraphics::drawTextArray( sal_Int32 x, sal_Int32 y, const ::rtl::OUString& rText, const 
::com::sun::star::uno::Sequence< sal_Int32 >& rLongs ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if( mpOutputDevice )
     {
diff --git a/toolkit/source/awt/vclxplugin.cxx b/toolkit/source/awt/vclxplugin.cxx
index c48d1de..5910923 100644
--- a/toolkit/source/awt/vclxplugin.cxx
+++ b/toolkit/source/awt/vclxplugin.cxx
@@ -32,6 +32,7 @@
 #include <toolkit/helper/convert.hxx>
 #include <toolkit/helper/property.hxx>
 #include <vcl/ctrl.hxx>
+#include <vcl/svapp.hxx>
 
 #include "forward.hxx"
 
@@ -55,12 +56,12 @@ VCLXPlugin::~VCLXPlugin()
 void SAL_CALL VCLXPlugin::dispose() throw(uno::RuntimeException)
 {
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
-        
+        SolarMutexGuard aGuard;
+
         lang::EventObject aDisposeEvent;
         aDisposeEvent.Source = W3K_EXPLICIT_CAST (*this);
     }
-    
+
     VCLXWindow::dispose();
 }
 
@@ -72,7 +73,7 @@ void VCLXPlugin::SetPlugin( ::Control *p )
 awt::Size SAL_CALL VCLXPlugin::getMinimumSize()
     throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::ClearableSolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if ( mpPlugin )
         return AWTSize( mpPlugin->GetSizePixel() );
     return awt::Size();
diff --git a/toolkit/source/awt/vclxscroller.cxx b/toolkit/source/awt/vclxscroller.cxx
index 1655116..91af599 100644
--- a/toolkit/source/awt/vclxscroller.cxx
+++ b/toolkit/source/awt/vclxscroller.cxx
@@ -35,6 +35,7 @@
 #include <toolkit/helper/property.hxx>
 #include <tools/debug.hxx>
 #include <vcl/scrbar.hxx>
+#include <vcl/svapp.hxx>
 
 #include "forward.hxx"
 
@@ -69,7 +70,7 @@ IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXScroller, VCLXWindow );
 void SAL_CALL VCLXScroller::dispose() throw(RuntimeException)
 {
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         EventObject aDisposeEvent;
         aDisposeEvent.Source = W3K_EXPLICIT_CAST (*this);
@@ -154,7 +155,7 @@ void VCLXScroller::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
 
 void SAL_CALL VCLXScroller::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) 
throw(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -173,7 +174,7 @@ void SAL_CALL VCLXScroller::setProperty( const ::rtl::OUString& PropertyName, co
 
 Any SAL_CALL VCLXScroller::getProperty( const ::rtl::OUString& PropertyName ) 
throw(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Any aReturn;
     if ( GetWindow() )
diff --git a/toolkit/source/awt/vclxspinbutton.cxx b/toolkit/source/awt/vclxspinbutton.cxx
index 9c81294..297845c 100644
--- a/toolkit/source/awt/vclxspinbutton.cxx
+++ b/toolkit/source/awt/vclxspinbutton.cxx
@@ -35,6 +35,7 @@
 
 #include <tools/debug.hxx>
 #include <vcl/spin.hxx>
+#include <vcl/svapp.hxx>
 
 namespace toolkit
 {
@@ -93,7 +94,7 @@ namespace toolkit
     void SAL_CALL VCLXSpinButton::dispose( ) throw(RuntimeException)
     {
         {
-            ::osl::SolarGuard aGuard( GetMutex() );
+            SolarMutexGuard aGuard;
 
             EventObject aDisposeEvent;
             aDisposeEvent.Source = *this;
@@ -123,19 +124,18 @@ namespace toolkit
         typedef long (SpinButton::*GetSpinButtonValue) (void) const;
 
         //................................................................
-        void lcl_setSpinButtonValue( ::osl::SolarMutex& _rMutex, Window* _pWindow, 
SetSpinButtonValue _pSetter, sal_Int32 _nValue )
+        void lcl_setSpinButtonValue(Window* _pWindow, SetSpinButtonValue _pSetter, sal_Int32 
_nValue )
         {
-            ::osl::SolarGuard aGuard( _rMutex );
-
+            SolarMutexGuard aGuard;
             SpinButton* pSpinButton = static_cast< SpinButton* >( _pWindow );
             if ( pSpinButton )
                 (pSpinButton->*_pSetter)( _nValue );
         }
 
         //................................................................
-        sal_Int32 lcl_getSpinButtonValue( ::osl::SolarMutex& _rMutex, const Window* _pWindow, 
GetSpinButtonValue _pGetter )
+        sal_Int32 lcl_getSpinButtonValue(const Window* _pWindow, GetSpinButtonValue _pGetter )
         {
-            ::osl::SolarGuard aGuard( _rMutex );
+            SolarMutexGuard aGuard;
 
             sal_Int32 nValue = 0;
 
@@ -149,13 +149,13 @@ namespace toolkit
     //--------------------------------------------------------------------
     void SAL_CALL VCLXSpinButton::setValue( sal_Int32 n ) throw (RuntimeException)
     {
-        lcl_setSpinButtonValue( GetMutex(), GetWindow(), &SpinButton::SetValue, n );
+        lcl_setSpinButtonValue( GetWindow(), &SpinButton::SetValue, n );
     }
     
     //--------------------------------------------------------------------
     void SAL_CALL VCLXSpinButton::setValues( sal_Int32 minValue, sal_Int32 maxValue, sal_Int32 
currentValue ) throw (RuntimeException)
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         setMinimum( minValue );
         setMaximum( maxValue );
@@ -165,49 +165,49 @@ namespace toolkit
     //--------------------------------------------------------------------
     sal_Int32 SAL_CALL VCLXSpinButton::getValue(  ) throw (RuntimeException)
     {
-        return lcl_getSpinButtonValue( GetMutex(), GetWindow(), &SpinButton::GetValue );
+        return lcl_getSpinButtonValue( GetWindow(), &SpinButton::GetValue );
     }
     
     //--------------------------------------------------------------------
     void SAL_CALL VCLXSpinButton::setMinimum( sal_Int32 minValue ) throw (RuntimeException)
     {
-        lcl_setSpinButtonValue( GetMutex(), GetWindow(), &SpinButton::SetRangeMin, minValue );
+        lcl_setSpinButtonValue( GetWindow(), &SpinButton::SetRangeMin, minValue );
     }
     
     //--------------------------------------------------------------------
     void SAL_CALL VCLXSpinButton::setMaximum( sal_Int32 maxValue ) throw (RuntimeException)
     {
-        lcl_setSpinButtonValue( GetMutex(), GetWindow(), &SpinButton::SetRangeMax, maxValue );
+        lcl_setSpinButtonValue( GetWindow(), &SpinButton::SetRangeMax, maxValue );
     }
     
     //--------------------------------------------------------------------
     sal_Int32 SAL_CALL VCLXSpinButton::getMinimum(  ) throw (RuntimeException)
     {
-        return lcl_getSpinButtonValue( GetMutex(), GetWindow(), &SpinButton::GetRangeMin );
+        return lcl_getSpinButtonValue( GetWindow(), &SpinButton::GetRangeMin );
     }
     
     //--------------------------------------------------------------------
     sal_Int32 SAL_CALL VCLXSpinButton::getMaximum(  ) throw (RuntimeException)
     {
-        return lcl_getSpinButtonValue( GetMutex(), GetWindow(), &SpinButton::GetRangeMax );
+        return lcl_getSpinButtonValue( GetWindow(), &SpinButton::GetRangeMax );
     }
     
     //--------------------------------------------------------------------
     void SAL_CALL VCLXSpinButton::setSpinIncrement( sal_Int32 spinIncrement ) throw 
(RuntimeException)
     {
-        lcl_setSpinButtonValue( GetMutex(), GetWindow(), &SpinButton::SetValueStep, spinIncrement 
);
+        lcl_setSpinButtonValue( GetWindow(), &SpinButton::SetValueStep, spinIncrement );
     }
     
     //--------------------------------------------------------------------
     sal_Int32 SAL_CALL VCLXSpinButton::getSpinIncrement(  ) throw (RuntimeException)
     {
-        return lcl_getSpinButtonValue( GetMutex(), GetWindow(), &SpinButton::GetValueStep );
+        return lcl_getSpinButtonValue( GetWindow(), &SpinButton::GetValueStep );
     }
     
     //--------------------------------------------------------------------
     void SAL_CALL VCLXSpinButton::setOrientation( sal_Int32 orientation ) throw 
(NoSupportException, RuntimeException)
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         lcl_modifyStyle( GetWindow(), WB_HSCROLL, orientation == ScrollBarOrientation::HORIZONTAL 
);
     }
@@ -223,7 +223,7 @@ namespace toolkit
     //--------------------------------------------------------------------
     void VCLXSpinButton::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
     {
-        ::osl::ClearableSolarGuard aGuard( GetMutex() );
+        SolarMutexClearableGuard aGuard;
         Reference< XSpinValue > xKeepAlive( this );
         SpinButton* pSpinButton = static_cast< SpinButton* >( GetWindow() );
         if ( !pSpinButton )
@@ -255,7 +255,7 @@ namespace toolkit
     //--------------------------------------------------------------------
     void SAL_CALL VCLXSpinButton::setProperty( const ::rtl::OUString& PropertyName, const Any& 
Value ) throw(RuntimeException)
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         sal_Int32 nValue = 0;
         sal_Bool  bIsLongValue = ( Value >>= nValue );
@@ -305,7 +305,7 @@ namespace toolkit
     //--------------------------------------------------------------------
     Any SAL_CALL VCLXSpinButton::getProperty( const ::rtl::OUString& PropertyName ) 
throw(RuntimeException)
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         Any aReturn;
 
diff --git a/toolkit/source/awt/vclxsplitter.cxx b/toolkit/source/awt/vclxsplitter.cxx
index bbd2dac..787f1a1 100644
--- a/toolkit/source/awt/vclxsplitter.cxx
+++ b/toolkit/source/awt/vclxsplitter.cxx
@@ -34,6 +34,7 @@
 #include <toolkit/helper/property.hxx>
 #include <toolkit/helper/vclunohelper.hxx>
 #include <vcl/split.hxx>
+#include <vcl/svapp.hxx>
 
 #include "forward.hxx"
 
@@ -107,7 +108,7 @@ VCLXSplitter::getChild( int i )
 void SAL_CALL VCLXSplitter::dispose() throw(RuntimeException)
 {
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         EventObject aDisposeEvent;
         aDisposeEvent.Source = W3K_EXPLICIT_CAST (*this);
diff --git a/toolkit/source/awt/vclxsystemdependentwindow.cxx 
b/toolkit/source/awt/vclxsystemdependentwindow.cxx
index a7155fd..15b8e87 100644
--- a/toolkit/source/awt/vclxsystemdependentwindow.cxx
+++ b/toolkit/source/awt/vclxsystemdependentwindow.cxx
@@ -50,6 +50,7 @@
 #include "postmac.h"
 #endif
 
+#include <vcl/svapp.hxx>
 #include <vcl/syschild.hxx>
 #include <vcl/sysdata.hxx>
 
@@ -80,7 +81,7 @@ IMPL_XTYPEPROVIDER_END
 
 ::com::sun::star::uno::Any VCLXSystemDependentWindow::getWindowHandle( const 
::com::sun::star::uno::Sequence< sal_Int8 >& /*ProcessId*/, sal_Int16 SystemType ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     // TODO, check the process id
     ::com::sun::star::uno::Any aRet;
diff --git a/toolkit/source/awt/vclxtabcontrol.cxx b/toolkit/source/awt/vclxtabcontrol.cxx
index ab5c617..f29b488 100644
--- a/toolkit/source/awt/vclxtabcontrol.cxx
+++ b/toolkit/source/awt/vclxtabcontrol.cxx
@@ -34,6 +34,7 @@
 #include <toolkit/helper/vclunohelper.hxx>
 #include <vcl/tabctrl.hxx>
 #include <vcl/tabpage.hxx>
+#include <vcl/svapp.hxx>
 
 #include "forward.hxx"
 
@@ -100,7 +101,7 @@ IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXTabControl, VCLXWindow, VCLXTabControl_Bas
 void SAL_CALL VCLXTabControl::dispose( ) throw(uno::RuntimeException)
 {
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         EventObject aDisposeEvent;
         aDisposeEvent.Source = W3K_EXPLICIT_CAST (*this);
@@ -220,7 +221,7 @@ uno::Sequence< NamedValue > SAL_CALL VCLXTabControl::getTabProps( sal_Int32 ID )
 // TODO: draw tab border here
 void SAL_CALL VCLXTabControl::draw( sal_Int32 nX, sal_Int32 nY ) throw(uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TabControl *pTabControl = getTabControl();
     TabPage *pTabPage = pTabControl->GetTabPage( sal::static_int_cast< USHORT >(  getActiveTabID() 
) );
@@ -447,7 +448,7 @@ awt::Size SAL_CALL VCLXTabControl::getMinimumSize()
 
 void VCLXTabControl::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
 {
-    ::osl::ClearableSolarGuard aGuard( GetMutex() );
+    SolarMutexClearableGuard aGuard;
     TabControl* pTabControl = static_cast< TabControl* >( GetWindow() );
     if ( !pTabControl )
         return;
diff --git a/toolkit/source/awt/vclxtabpage.cxx b/toolkit/source/awt/vclxtabpage.cxx
index 7286b7d..42d4d68 100644
--- a/toolkit/source/awt/vclxtabpage.cxx
+++ b/toolkit/source/awt/vclxtabpage.cxx
@@ -33,6 +33,7 @@
 #include <toolkit/helper/convert.hxx>
 #include <vcl/tabpage.hxx>
 #include <vcl/tabctrl.hxx>
+#include <vcl/svapp.hxx>
 
 #if !defined (__GNUC__)
 #define __PRETTY_FUNCTION__ __FUNCTION__
@@ -66,7 +67,7 @@ VCLXTabPage::~VCLXTabPage()
 void SAL_CALL VCLXTabPage::dispose() throw(uno::RuntimeException)
 {
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         lang::EventObject aDisposeEvent;
         aDisposeEvent.Source = W3K_EXPLICIT_CAST (*this);
@@ -135,7 +136,7 @@ void SAL_CALL VCLXTabPage::allocateArea( awt::Rectangle const& area )
 awt::Size SAL_CALL VCLXTabPage::getMinimumSize()
     throw(uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     return Bin::getMinimumSize();
 }
diff --git a/toolkit/source/awt/vclxtopwindow.cxx b/toolkit/source/awt/vclxtopwindow.cxx
index 746163c..a8d5ff1 100644
--- a/toolkit/source/awt/vclxtopwindow.cxx
+++ b/toolkit/source/awt/vclxtopwindow.cxx
@@ -93,7 +93,7 @@ Sequence< Type > VCLXTopWindow_Base::getTypes() throw(RuntimeException)
 
 ::com::sun::star::uno::Any VCLXTopWindow_Base::getWindowHandle( const 
::com::sun::star::uno::Sequence< sal_Int8 >& /*ProcessId*/, sal_Int16 SystemType ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutexImpl() );
+    SolarMutexGuard aGuard;
 
     // TODO, check the process id
     ::com::sun::star::uno::Any aRet;
@@ -134,21 +134,21 @@ Sequence< Type > VCLXTopWindow_Base::getTypes() throw(RuntimeException)
 
 void VCLXTopWindow_Base::addTopWindowListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XTopWindowListener >& rxListener ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutexImpl() );
+    SolarMutexGuard aGuard;
 
     GetTopWindowListenersImpl().addInterface( rxListener );
 }
 
 void VCLXTopWindow_Base::removeTopWindowListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XTopWindowListener >& rxListener ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutexImpl() );
+    SolarMutexGuard aGuard;
 
     GetTopWindowListenersImpl().removeInterface( rxListener );
 }
 
 void VCLXTopWindow_Base::toFront(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutexImpl() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindowImpl();
     if ( pWindow )
@@ -161,7 +161,7 @@ void VCLXTopWindow_Base::toBack(  ) throw(::com::sun::star::uno::RuntimeExceptio
 
 void VCLXTopWindow_Base::setMenuBar( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XMenuBar >& rxMenu ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutexImpl() );
+    SolarMutexGuard aGuard;
 
     SystemWindow* pWindow = (SystemWindow*) GetWindowImpl();
     if ( pWindow )
@@ -180,7 +180,7 @@ void VCLXTopWindow_Base::setMenuBar( const ::com::sun::star::uno::Reference< ::c
 //--------------------------------------------------------------------
 ::sal_Bool SAL_CALL VCLXTopWindow_Base::getIsMaximized() throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutexImpl() );
+    SolarMutexGuard aGuard;
 
     const WorkWindow* pWindow = dynamic_cast< const WorkWindow* >( GetWindowImpl() );
     if ( !pWindow )
@@ -192,7 +192,7 @@ void VCLXTopWindow_Base::setMenuBar( const ::com::sun::star::uno::Reference< ::c
 //--------------------------------------------------------------------
 void SAL_CALL VCLXTopWindow_Base::setIsMaximized( ::sal_Bool _ismaximized ) throw 
(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutexImpl() );
+    SolarMutexGuard aGuard;
 
     WorkWindow* pWindow = dynamic_cast< WorkWindow* >( GetWindowImpl() );
     if ( !pWindow )
@@ -204,7 +204,7 @@ void SAL_CALL VCLXTopWindow_Base::setIsMaximized( ::sal_Bool _ismaximized ) thro
 //--------------------------------------------------------------------
 ::sal_Bool SAL_CALL VCLXTopWindow_Base::getIsMinimized() throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutexImpl() );
+    SolarMutexGuard aGuard;
 
     const WorkWindow* pWindow = dynamic_cast< const WorkWindow* >( GetWindowImpl() );
     if ( !pWindow )
@@ -216,7 +216,7 @@ void SAL_CALL VCLXTopWindow_Base::setIsMaximized( ::sal_Bool _ismaximized ) thro
 //--------------------------------------------------------------------
 void SAL_CALL VCLXTopWindow_Base::setIsMinimized( ::sal_Bool _isMinimized ) throw 
(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutexImpl() );
+    SolarMutexGuard aGuard;
 
     WorkWindow* pWindow = dynamic_cast< WorkWindow* >( GetWindowImpl() );
     if ( !pWindow )
@@ -228,7 +228,7 @@ void SAL_CALL VCLXTopWindow_Base::setIsMinimized( ::sal_Bool _isMinimized ) thro
 //--------------------------------------------------------------------
 ::sal_Int32 SAL_CALL VCLXTopWindow_Base::getDisplay() throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutexImpl() );
+    SolarMutexGuard aGuard;
 
     const SystemWindow* pWindow = dynamic_cast< const SystemWindow* >( GetWindowImpl() );
     if ( !pWindow )
@@ -240,7 +240,7 @@ void SAL_CALL VCLXTopWindow_Base::setIsMinimized( ::sal_Bool _isMinimized ) thro
 //--------------------------------------------------------------------
 void SAL_CALL VCLXTopWindow_Base::setDisplay( ::sal_Int32 _display ) throw (RuntimeException, 
IndexOutOfBoundsException)
 {
-    ::osl::SolarGuard aGuard( GetMutexImpl() );
+    SolarMutexGuard aGuard;
 
     if ( ( _display < 0 ) || ( _display >= (sal_Int32)Application::GetScreenCount() ) )
         throw IndexOutOfBoundsException();
@@ -270,11 +270,6 @@ VCLXTopWindow::~VCLXTopWindow()
 {
 }
 
-osl::SolarMutex& VCLXTopWindow::GetMutexImpl()
-{
-    return VCLXContainer::GetMutex();
-}
-
 Window* VCLXTopWindow::GetWindowImpl()
 {
     return VCLXContainer::GetWindow();
diff --git a/toolkit/source/awt/vclxwindow.cxx b/toolkit/source/awt/vclxwindow.cxx
index d52ed9f..78a2449 100644
--- a/toolkit/source/awt/vclxwindow.cxx
+++ b/toolkit/source/awt/vclxwindow.cxx
@@ -128,7 +128,6 @@ private:
 
 private:
     VCLXWindow&                         mrAntiImpl;
-    ::osl::SolarMutex&                  mrMutex;
     ::toolkit::AccessibilityClient      maAccFactory;
     bool                                mbDisposed;
     bool                                mbDrawingOntoParent;    // no bit mask, is passed around  
by reference
@@ -181,7 +180,7 @@ public:
         the <type>VCLXWindow</type> instance which the object belongs to. Must
         live longer then the object just being constructed.
     */
-    VCLXWindowImpl( VCLXWindow& _rAntiImpl, ::osl::SolarMutex& _rMutex, bool _bWithDefaultProps );
+    VCLXWindowImpl( VCLXWindow& _rAntiImpl, bool _bWithDefaultProps );
 
     /** synchronously mbEnableVisible
     */
@@ -237,9 +236,8 @@ private:
 };
 
 //--------------------------------------------------------------------
-VCLXWindowImpl::VCLXWindowImpl( VCLXWindow& _rAntiImpl, ::osl::SolarMutex& _rMutex, bool 
_bWithDefaultProps )
+VCLXWindowImpl::VCLXWindowImpl( VCLXWindow& _rAntiImpl, bool _bWithDefaultProps )
     :mrAntiImpl( _rAntiImpl )
-    ,mrMutex( _rMutex )
     ,mbDisposed( false )
     ,mbDrawingOntoParent( false )
     ,mbEnableVisible(sal_True)
@@ -276,7 +274,7 @@ VCLXWindowImpl::~VCLXWindowImpl()
 //--------------------------------------------------------------------
 void VCLXWindowImpl::disposing()
 {
-    ::osl::SolarGuard aGuard( mrMutex );
+    SolarMutexGuard aGuard;
     if ( mnCallbackEventId )
         Application::RemoveUserEvent( mnCallbackEventId );
     mnCallbackEventId = 0;
@@ -323,7 +321,7 @@ IMPL_LINK( VCLXWindowImpl, OnProcessCallbacks, void*, EMPTYARG )
     // work on a copy of the callback array
     CallbackArray aCallbacksCopy;
     {
-        ::osl::SolarGuard aGuard( mrMutex );
+        SolarMutexGuard aGuard;
         aCallbacksCopy = maCallbackEvents;
         maCallbackEvents.clear();
 
@@ -366,11 +364,11 @@ void SAL_CALL VCLXWindowImpl::release()
 //--------------------------------------------------------------------
 Reference< XStyleSettings > VCLXWindowImpl::getStyleSettings()
 {
-    ::osl::SolarGuard  aGuard( mrMutex );
+    SolarMutexGuard aGuard;
     if ( mbDisposed )
         throw DisposedException( ::rtl::OUString(), mrAntiImpl );
     if ( !mxWindowStyleSettings.is() )
-        mxWindowStyleSettings = new ::toolkit::WindowStyleSettings( mrMutex, 
maListenerContainerMutex, mrAntiImpl );
+        mxWindowStyleSettings = new ::toolkit::WindowStyleSettings( maListenerContainerMutex, 
mrAntiImpl );
     return mxWindowStyleSettings;
 }
 
@@ -404,7 +402,7 @@ VCLXWindow::VCLXWindow( bool _bWithDefaultProps )
 {
     DBG_CTOR( VCLXWindow, 0 );
 
-    mpImpl = new VCLXWindowImpl( *this, GetMutex(), _bWithDefaultProps );
+    mpImpl = new VCLXWindowImpl( *this, _bWithDefaultProps );
 }
 
 VCLXWindow::~VCLXWindow()
@@ -449,7 +447,6 @@ void VCLXWindow::SetWindow( Window* pWindow )
         sal_Bool bDirectVisible = pWindow ? pWindow->IsVisible() : false;
         mpImpl->setDirectVisible( bDirectVisible );
     }
-    
 }
 
 void VCLXWindow::suspendVclEventListening( )
@@ -943,7 +940,7 @@ void VCLXWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
 
 uno::Reference< accessibility::XAccessibleContext > VCLXWindow::CreateAccessibleContext()
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return getAccessibleFactory().createAccessibleContext( this );
 }
 
@@ -979,7 +976,7 @@ IMPL_XUNOTUNNEL2( VCLXWindow, VCLXDevice )
 // ::com::sun::star::lang::Component
 void VCLXWindow::dispose(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     mpImpl->mxViewGraphics = NULL;
 
@@ -1018,14 +1015,14 @@ void VCLXWindow::dispose(  ) throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXWindow::addEventListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::lang::XEventListener >& rxListener ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     mpImpl->getEventListeners().addInterface( rxListener );
 }
 
 void VCLXWindow::removeEventListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::lang::XEventListener >& rxListener ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     mpImpl->getEventListeners().removeInterface( rxListener );
 }
@@ -1034,7 +1031,7 @@ void VCLXWindow::removeEventListener( const ::com::sun::star::uno::Reference< 
::
 // ::com::sun::star::awt::XWindow
 void VCLXWindow::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, 
sal_Int16 Flags ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -1047,7 +1044,7 @@ void VCLXWindow::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, 
sal_Int3
 
 ::com::sun::star::awt::Rectangle VCLXWindow::getPosSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Rectangle aBounds;
     if ( GetWindow() )
@@ -1063,7 +1060,7 @@ void VCLXWindow::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, 
sal_Int3
 
 void VCLXWindow::setVisible( sal_Bool bVisible ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -1088,7 +1085,7 @@ void VCLXWindow::setVisible( sal_Bool bVisible ) 
throw(::com::sun::star::uno::Ru
 
 void VCLXWindow::setEnable( sal_Bool bEnable ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -1100,7 +1097,7 @@ void VCLXWindow::setEnable( sal_Bool bEnable ) 
throw(::com::sun::star::uno::Runt
 
 void VCLXWindow::setFocus(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
         GetWindow()->GrabFocus();
@@ -1108,7 +1105,7 @@ void VCLXWindow::setFocus(  ) throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXWindow::addWindowListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XWindowListener >& rxListener ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     mpImpl->getWindowListeners().addInterface( rxListener );
 
@@ -1123,7 +1120,7 @@ void VCLXWindow::addWindowListener( const ::com::sun::star::uno::Reference< 
::co
 
 void VCLXWindow::removeWindowListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XWindowListener >& rxListener ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Reference< XWindowListener2 > xListener2( rxListener, UNO_QUERY );
     if ( xListener2.is() )
@@ -1134,61 +1131,61 @@ void VCLXWindow::removeWindowListener( const 
::com::sun::star::uno::Reference< :
 
 void VCLXWindow::addFocusListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XFocusListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     mpImpl->getFocusListeners().addInterface( rxListener );
 }
 
 void VCLXWindow::removeFocusListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XFocusListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     mpImpl->getFocusListeners().removeInterface( rxListener );
 }
 
 void VCLXWindow::addKeyListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XKeyListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     mpImpl->getKeyListeners().addInterface( rxListener );
 }
 
 void VCLXWindow::removeKeyListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XKeyListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     mpImpl->getKeyListeners().removeInterface( rxListener );
 }
 
 void VCLXWindow::addMouseListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XMouseListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     mpImpl->getMouseListeners().addInterface( rxListener );
 }
 
 void VCLXWindow::removeMouseListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XMouseListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     mpImpl->getMouseListeners().removeInterface( rxListener );
 }
 
 void VCLXWindow::addMouseMotionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XMouseMotionListener >& rxListener ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     mpImpl->getMouseMotionListeners().addInterface( rxListener );
 }
 
 void VCLXWindow::removeMouseMotionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XMouseMotionListener >& rxListener ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     mpImpl->getMouseMotionListeners().removeInterface( rxListener );
 }
 
 void VCLXWindow::addPaintListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XPaintListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     mpImpl->getPaintListeners().addInterface( rxListener );
 }
 
 void VCLXWindow::removePaintListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XPaintListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     mpImpl->getPaintListeners().removeInterface( rxListener );
 }
 
@@ -1202,7 +1199,7 @@ void VCLXWindow::removePaintListener( const ::com::sun::star::uno::Reference< 
::
 
 void VCLXWindow::setPointer( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XPointer >& rxPointer ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     VCLXPointer* pPointer = VCLXPointer::GetImplementation( rxPointer );
     if ( pPointer )
@@ -1215,7 +1212,7 @@ void VCLXWindow::setPointer( const ::com::sun::star::uno::Reference< 
::com::sun:
 
 void VCLXWindow::setBackground( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -1235,7 +1232,7 @@ void VCLXWindow::setBackground( sal_Int32 nColor ) 
throw(::com::sun::star::uno::
 
 void VCLXWindow::invalidate( sal_Int16 nInvalidateFlags ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
         GetWindow()->Invalidate( (sal_uInt16) nInvalidateFlags );
@@ -1243,7 +1240,7 @@ void VCLXWindow::invalidate( sal_Int16 nInvalidateFlags ) 
throw(::com::sun::star
 
 void VCLXWindow::invalidateRect( const ::com::sun::star::awt::Rectangle& rRect, sal_Int16 
nInvalidateFlags ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
         GetWindow()->Invalidate( VCLRectangle(rRect), (sal_uInt16) nInvalidateFlags );
@@ -1253,7 +1250,7 @@ void VCLXWindow::invalidateRect( const ::com::sun::star::awt::Rectangle& 
rRect,
 // ::com::sun::star::awt::XVclWindowPeer
 sal_Bool VCLXWindow::isChild( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XWindowPeer >& rxPeer ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Bool bIsChild = sal_False;
     Window* pWindow = GetWindow();
@@ -1268,20 +1265,20 @@ sal_Bool VCLXWindow::isChild( const ::com::sun::star::uno::Reference< 
::com::sun
 
 void VCLXWindow::setDesignMode( sal_Bool bOn ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     mpImpl->mbDesignMode = bOn;
 }
 
 sal_Bool VCLXWindow::isDesignMode(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return mpImpl->mbDesignMode;
 }
 
 void VCLXWindow::enableClipSiblings( sal_Bool bClip ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
         GetWindow()->EnableClipSiblings( bClip );
@@ -1289,7 +1286,7 @@ void VCLXWindow::enableClipSiblings( sal_Bool bClip ) 
throw(::com::sun::star::un
 
 void VCLXWindow::setForeground( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -1300,7 +1297,7 @@ void VCLXWindow::setForeground( sal_Int32 nColor ) 
throw(::com::sun::star::uno::
 
 void VCLXWindow::setControlFont( const ::com::sun::star::awt::FontDescriptor& rFont ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
         GetWindow()->SetControlFont( VCLUnoHelper::CreateFont( rFont, 
GetWindow()->GetControlFont() ) );
@@ -1308,7 +1305,7 @@ void VCLXWindow::setControlFont( const ::com::sun::star::awt::FontDescriptor& 
rF
 
 void VCLXWindow::getStyles( sal_Int16 nType, ::com::sun::star::awt::FontDescriptor& Font, 
sal_Int32& ForegroundColor, sal_Int32& BackgroundColor ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -1462,7 +1459,7 @@ namespace
 
 void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( !pWindow )
@@ -1995,7 +1992,7 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const 
::com::
 
 ::com::sun::star::uno::Any VCLXWindow::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     if ( GetWindow() )
@@ -2235,7 +2232,7 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const 
::com::
 // ::com::sun::star::awt::XLayoutConstrains
 ::com::sun::star::awt::Size VCLXWindow::getMinimumSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     // Diese Methode sollte nur fuer Componenten gerufen werden, die zwar
     // ueber das ::com::sun::star::awt::Toolkit erzeugt werden koennen, aber fuer die es
@@ -2279,7 +2276,7 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const 
::com::
 
 ::com::sun::star::awt::Size VCLXWindow::calcAdjustedSize( const ::com::sun::star::awt::Size& 
rNewSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aNewSize( rNewSize );
     ::com::sun::star::awt::Size aMinSize = getMinimumSize();
@@ -2296,7 +2293,7 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const 
::com::
 // ::com::sun::star::awt::XView
 sal_Bool VCLXWindow::setGraphics( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XGraphics >& rxDevice ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( VCLUnoHelper::GetOutputDevice( rxDevice ) )
         mpImpl->mxViewGraphics = rxDevice;
@@ -2308,14 +2305,14 @@ sal_Bool VCLXWindow::setGraphics( const ::com::sun::star::uno::Reference< 
::com:
 
 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics > VCLXWindow::getGraphics(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     return mpImpl->mxViewGraphics;
 }
 
 ::com::sun::star::awt::Size VCLXWindow::getSize(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     if ( GetWindow() )
@@ -2325,7 +2322,7 @@ sal_Bool VCLXWindow::setGraphics( const ::com::sun::star::uno::Reference< 
::com:
 
 void VCLXWindow::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( !pWindow )
@@ -2421,7 +2418,7 @@ void VCLXWindow::draw( sal_Int32 nX, sal_Int32 nY ) 
throw(::com::sun::star::uno:
 
 void VCLXWindow::setZoom( float fZoomX, float /*fZoomY*/ ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -2437,7 +2434,7 @@ void VCLXWindow::setZoom( float fZoomX, float /*fZoomY*/ ) 
throw(::com::sun::sta
 // ::com::sun::star::lang::XEventListener
 void SAL_CALL VCLXWindow::disposing( const ::com::sun::star::lang::EventObject& _rSource ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     // check if it comes from our AccessibleContext
     uno::Reference< uno::XInterface > aAC( mpImpl->mxAccessibleContext, uno::UNO_QUERY );
@@ -2454,7 +2451,7 @@ void SAL_CALL VCLXWindow::disposing( const 
::com::sun::star::lang::EventObject&
 {
     using namespace ::com::sun::star;
 
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     
     // already disposed
     if( ! mpImpl )
@@ -2478,7 +2475,7 @@ void SAL_CALL VCLXWindow::disposing( const 
::com::sun::star::lang::EventObject&
 // ::com::sun::star::awt::XDockable
 void SAL_CALL VCLXWindow::addDockableWindowListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XDockableWindowListener >& xListener ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( xListener.is() )
         mpImpl->getDockableWindowListeners().addInterface( xListener );
@@ -2487,14 +2484,14 @@ void SAL_CALL VCLXWindow::addDockableWindowListener( const 
::com::sun::star::uno
 
 void SAL_CALL VCLXWindow::removeDockableWindowListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XDockableWindowListener >& xListener ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     mpImpl->getDockableWindowListeners().removeInterface( xListener );
 }
 
 void SAL_CALL VCLXWindow::enableDocking( sal_Bool bEnable ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -2503,7 +2500,7 @@ void SAL_CALL VCLXWindow::enableDocking( sal_Bool bEnable ) throw 
(::com::sun::s
 
 sal_Bool SAL_CALL VCLXWindow::isFloating(  ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if( pWindow )
@@ -2514,7 +2511,7 @@ sal_Bool SAL_CALL VCLXWindow::isFloating(  ) throw 
(::com::sun::star::uno::Runti
 
 void SAL_CALL VCLXWindow::setFloatingMode( sal_Bool bFloating ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if( pWindow )
@@ -2523,7 +2520,7 @@ void SAL_CALL VCLXWindow::setFloatingMode( sal_Bool bFloating ) throw 
(::com::su
 
 sal_Bool SAL_CALL VCLXWindow::isLocked(  ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if( pWindow )
@@ -2534,7 +2531,7 @@ sal_Bool SAL_CALL VCLXWindow::isLocked(  ) throw 
(::com::sun::star::uno::Runtime
 
 void SAL_CALL VCLXWindow::lock(  ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if( pWindow && !Window::GetDockingManager()->IsFloating( pWindow ) )
@@ -2543,7 +2540,7 @@ void SAL_CALL VCLXWindow::lock(  ) throw 
(::com::sun::star::uno::RuntimeExceptio
 
 void SAL_CALL VCLXWindow::unlock(  ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if( pWindow && !Window::GetDockingManager()->IsFloating( pWindow ) )
@@ -2552,14 +2549,14 @@ void SAL_CALL VCLXWindow::unlock(  ) throw 
(::com::sun::star::uno::RuntimeExcept
 void SAL_CALL VCLXWindow::startPopupMode( const ::com::sun::star::awt::Rectangle& ) throw 
(::com::sun::star::uno::RuntimeException)
 {
     // TODO: remove interface in the next incompatible build
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
 }
 
 sal_Bool SAL_CALL VCLXWindow::isInPopupMode(  ) throw (::com::sun::star::uno::RuntimeException)
 {
     // TODO: remove interface in the next incompatible build
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return FALSE;
 }
 
@@ -2568,7 +2565,7 @@ sal_Bool SAL_CALL VCLXWindow::isInPopupMode(  ) throw 
(::com::sun::star::uno::Ru
 
 void SAL_CALL VCLXWindow::setOutputSize( const ::com::sun::star::awt::Size& aSize ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     Window *pWindow;
     if( (pWindow = GetWindow()) != NULL )
     {
@@ -2582,7 +2579,7 @@ void SAL_CALL VCLXWindow::setOutputSize( const ::com::sun::star::awt::Size& 
aSiz
 
 ::com::sun::star::awt::Size SAL_CALL VCLXWindow::getOutputSize(  ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     Window *pWindow;
     if( (pWindow = GetWindow()) != NULL )
     {
@@ -2598,7 +2595,7 @@ void SAL_CALL VCLXWindow::setOutputSize( const ::com::sun::star::awt::Size& 
aSiz
 
 sal_Bool SAL_CALL VCLXWindow::isVisible(  ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if( GetWindow() )
         return GetWindow()->IsVisible();
     else
@@ -2607,7 +2604,7 @@ sal_Bool SAL_CALL VCLXWindow::isVisible(  ) throw 
(::com::sun::star::uno::Runtim
 
 sal_Bool SAL_CALL VCLXWindow::isActive(  ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if( GetWindow() )
         return GetWindow()->IsActive();
     else
@@ -2617,7 +2614,7 @@ sal_Bool SAL_CALL VCLXWindow::isActive(  ) throw 
(::com::sun::star::uno::Runtime
 
 sal_Bool SAL_CALL VCLXWindow::isEnabled(  ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if( GetWindow() )
         return GetWindow()->IsEnabled();
     else
@@ -2626,7 +2623,7 @@ sal_Bool SAL_CALL VCLXWindow::isEnabled(  ) throw 
(::com::sun::star::uno::Runtim
 
 sal_Bool SAL_CALL VCLXWindow::hasFocus(  ) throw (::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if( GetWindow() )
         return GetWindow()->HasFocus();
     else
@@ -2638,7 +2635,7 @@ sal_Bool SAL_CALL VCLXWindow::hasFocus(  ) throw 
(::com::sun::star::uno::Runtime
 UnoPropertyArrayHelper *
 VCLXWindow::GetPropHelper()
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     if ( mpImpl->mpPropHelper == NULL )
     {
         std::list< sal_uInt16 > aIDs;
diff --git a/toolkit/source/awt/vclxwindows.cxx b/toolkit/source/awt/vclxwindows.cxx
index bbe45fb..d2d5805 100644
--- a/toolkit/source/awt/vclxwindows.cxx
+++ b/toolkit/source/awt/vclxwindows.cxx
@@ -223,7 +223,7 @@ void VCLXGraphicControl::ImplSetNewImage()
 
 void VCLXGraphicControl::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, 
short Flags ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -236,7 +236,7 @@ void VCLXGraphicControl::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width,
 
 void VCLXGraphicControl::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Button* pButton = static_cast< Button* >( GetWindow() );
     if ( !pButton )
@@ -289,7 +289,7 @@ void VCLXGraphicControl::setProperty( const ::rtl::OUString& PropertyName, const
 
 ::com::sun::star::uno::Any VCLXGraphicControl::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     if ( !GetWindow() )
@@ -389,7 +389,7 @@ VCLXButton::~VCLXButton()
 
 void VCLXButton::dispose() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::lang::EventObject aObj;
     aObj.Source = (::cppu::OWeakObject*)this;
@@ -400,31 +400,31 @@ void VCLXButton::dispose() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXButton::addActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l  )throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionListeners.addInterface( l );
 }
 
 void VCLXButton::removeActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionListeners.removeInterface( l );
 }
 
 void VCLXButton::addItemListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XItemListener > & l  )throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maItemListeners.addInterface( l );
 }
 
 void VCLXButton::removeItemListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maItemListeners.removeInterface( l );
 }
 
 void VCLXButton::setLabel( const ::rtl::OUString& rLabel ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -433,14 +433,14 @@ void VCLXButton::setLabel( const ::rtl::OUString& rLabel ) 
throw(::com::sun::sta
 
 void VCLXButton::setActionCommand( const ::rtl::OUString& rCommand ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     maActionCommand = rCommand;
 }
 
 ::com::sun::star::awt::Size VCLXButton::getMinimumSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     PushButton* pButton = (PushButton*) GetWindow();
@@ -459,7 +459,7 @@ void VCLXButton::setActionCommand( const ::rtl::OUString& rCommand ) throw(::com
 
 ::com::sun::star::awt::Size VCLXButton::calcAdjustedSize( const ::com::sun::star::awt::Size& 
rNewSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz = VCLSize(rNewSize);
     PushButton* pButton = (PushButton*) GetWindow();
@@ -487,7 +487,7 @@ void VCLXButton::setActionCommand( const ::rtl::OUString& rCommand ) throw(::com
 
 void VCLXButton::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Button* pButton = (Button*)GetWindow();
     if ( pButton )
@@ -532,7 +532,7 @@ void VCLXButton::setProperty( const ::rtl::OUString& PropertyName, const ::com::
 
 ::com::sun::star::uno::Any VCLXButton::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     Button* pButton = (Button*)GetWindow();
@@ -664,7 +664,7 @@ void VCLXImageControl::ImplSetNewImage()
 
 ::com::sun::star::awt::Size VCLXImageControl::getMinimumSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz = GetBitmap().GetSizePixel();
     aSz = ImplCalcWindowSize( aSz );
@@ -679,7 +679,7 @@ void VCLXImageControl::ImplSetNewImage()
 
 ::com::sun::star::awt::Size VCLXImageControl::calcAdjustedSize( const ::com::sun::star::awt::Size& 
rNewSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aSz = rNewSize;
     ::com::sun::star::awt::Size aMinSz = getMinimumSize();
@@ -692,7 +692,7 @@ void VCLXImageControl::ImplSetNewImage()
 
 void VCLXImageControl::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ImageControl* pImageControl = (ImageControl*)GetWindow();
 
@@ -728,7 +728,7 @@ void VCLXImageControl::setProperty( const ::rtl::OUString& PropertyName, const :
 
 ::com::sun::star::uno::Any VCLXImageControl::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     ImageControl* pImageControl = (ImageControl*)GetWindow();
@@ -812,7 +812,7 @@ IMPL_XTYPEPROVIDER_END
 
 void VCLXCheckBox::dispose() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::lang::EventObject aObj;
     aObj.Source = (::cppu::OWeakObject*)this;
@@ -822,37 +822,37 @@ void VCLXCheckBox::dispose() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXCheckBox::addItemListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maItemListeners.addInterface( l );
 }
 
 void VCLXCheckBox::removeItemListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maItemListeners.removeInterface( l );
 }
 
 void VCLXCheckBox::addActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l  )throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionListeners.addInterface( l );
 }
 
 void VCLXCheckBox::removeActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionListeners.removeInterface( l );
 }
 
 void VCLXCheckBox::setActionCommand( const ::rtl::OUString& rCommand ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionCommand = rCommand;
 }
 
 void VCLXCheckBox::setLabel( const ::rtl::OUString& rLabel ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -861,7 +861,7 @@ void VCLXCheckBox::setLabel( const ::rtl::OUString& rLabel ) throw(::com::sun::s
 
 void VCLXCheckBox::setState( short n ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     CheckBox* pCheckBox = (CheckBox*)GetWindow();
     if ( pCheckBox)
@@ -889,7 +889,7 @@ void VCLXCheckBox::setState( short n ) throw(::com::sun::star::uno::RuntimeExcep
 
 short VCLXCheckBox::getState() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     short nState = -1;
     CheckBox* pCheckBox = (CheckBox*)GetWindow();
@@ -909,7 +909,7 @@ short VCLXCheckBox::getState() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXCheckBox::enableTriState( sal_Bool b ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     CheckBox* pCheckBox = (CheckBox*)GetWindow();
     if ( pCheckBox)
@@ -918,7 +918,7 @@ void VCLXCheckBox::enableTriState( sal_Bool b ) throw(::com::sun::star::uno::Run
 
 ::com::sun::star::awt::Size VCLXCheckBox::getMinimumSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     CheckBox* pCheckBox = (CheckBox*) GetWindow();
@@ -934,7 +934,7 @@ void VCLXCheckBox::enableTriState( sal_Bool b ) throw(::com::sun::star::uno::Run
 
 ::com::sun::star::awt::Size VCLXCheckBox::calcAdjustedSize( const ::com::sun::star::awt::Size& 
rNewSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz = VCLSize(rNewSize);
     CheckBox* pCheckBox = (CheckBox*) GetWindow();
@@ -951,7 +951,7 @@ void VCLXCheckBox::enableTriState( sal_Bool b ) throw(::com::sun::star::uno::Run
 
 void VCLXCheckBox::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     CheckBox* pCheckBox = (CheckBox*)GetWindow();
     if ( pCheckBox )
@@ -987,7 +987,7 @@ void VCLXCheckBox::setProperty( const ::rtl::OUString& PropertyName, const ::com
 
 ::com::sun::star::uno::Any VCLXCheckBox::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     CheckBox* pCheckBox = (CheckBox*)GetWindow();
@@ -1114,7 +1114,7 @@ IMPL_XTYPEPROVIDER_END
 
 void VCLXRadioButton::dispose() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::lang::EventObject aObj;
     aObj.Source = (::cppu::OWeakObject*)this;
@@ -1124,7 +1124,7 @@ void VCLXRadioButton::dispose() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXRadioButton::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     RadioButton* pButton = (RadioButton*)GetWindow();
     if ( pButton )
@@ -1166,7 +1166,7 @@ void VCLXRadioButton::setProperty( const ::rtl::OUString& PropertyName, const 
::
 
 ::com::sun::star::uno::Any VCLXRadioButton::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     RadioButton* pButton = (RadioButton*)GetWindow();
@@ -1195,31 +1195,31 @@ void VCLXRadioButton::setProperty( const ::rtl::OUString& PropertyName, 
const ::
 
 void VCLXRadioButton::addItemListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maItemListeners.addInterface( l );
 }
 
 void VCLXRadioButton::removeItemListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maItemListeners.removeInterface( l );
 }
 
 void VCLXRadioButton::addActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l  )throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionListeners.addInterface( l );
 }
 
 void VCLXRadioButton::removeActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionListeners.removeInterface( l );
 }
 
 void VCLXRadioButton::setLabel( const ::rtl::OUString& rLabel ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -1228,13 +1228,13 @@ void VCLXRadioButton::setLabel( const ::rtl::OUString& rLabel ) 
throw(::com::sun
 
 void VCLXRadioButton::setActionCommand( const ::rtl::OUString& rCommand ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionCommand = rCommand;
 }
 
 void VCLXRadioButton::setState( sal_Bool b ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     RadioButton* pRadioButton = (RadioButton*)GetWindow();
     if ( pRadioButton)
@@ -1253,7 +1253,7 @@ void VCLXRadioButton::setState( sal_Bool b ) 
throw(::com::sun::star::uno::Runtim
 
 sal_Bool VCLXRadioButton::getState() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     RadioButton* pRadioButton = (RadioButton*)GetWindow();
     return pRadioButton ? pRadioButton->IsChecked() : sal_False;
@@ -1261,7 +1261,7 @@ sal_Bool VCLXRadioButton::getState() 
throw(::com::sun::star::uno::RuntimeExcepti
 
 ::com::sun::star::awt::Size VCLXRadioButton::getMinimumSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     RadioButton* pRadioButton = (RadioButton*) GetWindow();
@@ -1277,7 +1277,7 @@ sal_Bool VCLXRadioButton::getState() 
throw(::com::sun::star::uno::RuntimeExcepti
 
 ::com::sun::star::awt::Size VCLXRadioButton::calcAdjustedSize( const ::com::sun::star::awt::Size& 
rNewSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz = VCLSize(rNewSize);
     RadioButton* pRadioButton = (RadioButton*) GetWindow();
@@ -1376,19 +1376,19 @@ IMPL_XTYPEPROVIDER_END
 
 void VCLXSpinField::addSpinListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XSpinListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maSpinListeners.addInterface( l );
 }
 
 void VCLXSpinField::removeSpinListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XSpinListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maSpinListeners.removeInterface( l );
 }
 
 void VCLXSpinField::up() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     SpinField* pSpinField = (SpinField*) GetWindow();
     if ( pSpinField )
@@ -1397,7 +1397,7 @@ void VCLXSpinField::up() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXSpinField::down() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     SpinField* pSpinField = (SpinField*) GetWindow();
     if ( pSpinField )
@@ -1406,7 +1406,7 @@ void VCLXSpinField::down() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXSpinField::first() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     SpinField* pSpinField = (SpinField*) GetWindow();
     if ( pSpinField )
@@ -1415,7 +1415,7 @@ void VCLXSpinField::first() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXSpinField::last() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     SpinField* pSpinField = (SpinField*) GetWindow();
     if ( pSpinField )
@@ -1424,7 +1424,7 @@ void VCLXSpinField::last() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXSpinField::enableRepeat( sal_Bool bRepeat ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -1523,7 +1523,7 @@ VCLXListBox::VCLXListBox()
 
 void VCLXListBox::dispose() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::lang::EventObject aObj;
     aObj.Source = (::cppu::OWeakObject*)this;
@@ -1534,31 +1534,31 @@ void VCLXListBox::dispose() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXListBox::addItemListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maItemListeners.addInterface( l );
 }
 
 void VCLXListBox::removeItemListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maItemListeners.removeInterface( l );
 }
 
 void VCLXListBox::addActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionListeners.addInterface( l );
 }
 
 void VCLXListBox::removeActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionListeners.removeInterface( l );
 }
 
 void VCLXListBox::addItem( const ::rtl::OUString& aItem, sal_Int16 nPos ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pBox = (ListBox*) GetWindow();
     if ( pBox )
@@ -1567,7 +1567,7 @@ void VCLXListBox::addItem( const ::rtl::OUString& aItem, sal_Int16 nPos ) 
throw(
 
 void VCLXListBox::addItems( const ::com::sun::star::uno::Sequence< ::rtl::OUString>& aItems, 
sal_Int16 nPos ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pBox = (ListBox*) GetWindow();
     if ( pBox )
@@ -1591,7 +1591,7 @@ void VCLXListBox::addItems( const ::com::sun::star::uno::Sequence< 
::rtl::OUStri
 
 void VCLXListBox::removeItems( sal_Int16 nPos, sal_Int16 nCount ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pBox = (ListBox*) GetWindow();
     if ( pBox )
@@ -1603,7 +1603,7 @@ void VCLXListBox::removeItems( sal_Int16 nPos, sal_Int16 nCount ) 
throw(::com::s
 
 sal_Int16 VCLXListBox::getItemCount() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pBox = (ListBox*) GetWindow();
     return pBox ? pBox->GetEntryCount() : 0;
@@ -1611,7 +1611,7 @@ sal_Int16 VCLXListBox::getItemCount() 
throw(::com::sun::star::uno::RuntimeExcept
 
 ::rtl::OUString VCLXListBox::getItem( sal_Int16 nPos ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     String aItem;
     ListBox* pBox = (ListBox*) GetWindow();
@@ -1622,7 +1622,7 @@ sal_Int16 VCLXListBox::getItemCount() 
throw(::com::sun::star::uno::RuntimeExcept
 
 ::com::sun::star::uno::Sequence< ::rtl::OUString> VCLXListBox::getItems() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Sequence< ::rtl::OUString> aSeq;
     ListBox* pBox = (ListBox*) GetWindow();
@@ -1641,7 +1641,7 @@ sal_Int16 VCLXListBox::getItemCount() 
throw(::com::sun::star::uno::RuntimeExcept
 
 sal_Int16 VCLXListBox::getSelectedItemPos() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pBox = (ListBox*) GetWindow();
     return pBox ? pBox->GetSelectEntryPos() : 0;
@@ -1649,7 +1649,7 @@ sal_Int16 VCLXListBox::getSelectedItemPos() 
throw(::com::sun::star::uno::Runtime
 
 ::com::sun::star::uno::Sequence<sal_Int16> VCLXListBox::getSelectedItemsPos() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Sequence<sal_Int16> aSeq;
     ListBox* pBox = (ListBox*) GetWindow();
@@ -1665,7 +1665,7 @@ sal_Int16 VCLXListBox::getSelectedItemPos() 
throw(::com::sun::star::uno::Runtime
 
 ::rtl::OUString VCLXListBox::getSelectedItem() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     String aItem;
     ListBox* pBox = (ListBox*) GetWindow();
@@ -1676,7 +1676,7 @@ sal_Int16 VCLXListBox::getSelectedItemPos() 
throw(::com::sun::star::uno::Runtime
 
 ::com::sun::star::uno::Sequence< ::rtl::OUString> VCLXListBox::getSelectedItems() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Sequence< ::rtl::OUString> aSeq;
     ListBox* pBox = (ListBox*) GetWindow();
@@ -1692,7 +1692,7 @@ sal_Int16 VCLXListBox::getSelectedItemPos() 
throw(::com::sun::star::uno::Runtime
 
 void VCLXListBox::selectItemPos( sal_Int16 nPos, sal_Bool bSelect ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pBox = (ListBox*) GetWindow();
     if ( pBox && ( pBox->IsEntryPosSelected( nPos ) != bSelect ) )
@@ -1711,7 +1711,7 @@ void VCLXListBox::selectItemPos( sal_Int16 nPos, sal_Bool bSelect ) 
throw(::com:
 
 void VCLXListBox::selectItemsPos( const ::com::sun::star::uno::Sequence<sal_Int16>& aPositions, 
sal_Bool bSelect ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pBox = (ListBox*) GetWindow();
     if ( pBox )
@@ -1742,7 +1742,7 @@ void VCLXListBox::selectItemsPos( const 
::com::sun::star::uno::Sequence<sal_Int1
 
 void VCLXListBox::selectItem( const ::rtl::OUString& rItemText, sal_Bool bSelect ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pBox = (ListBox*) GetWindow();
     if ( pBox )
@@ -1755,7 +1755,7 @@ void VCLXListBox::selectItem( const ::rtl::OUString& rItemText, sal_Bool 
bSelect
 
 void VCLXListBox::setDropDownLineCount( sal_Int16 nLines ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pBox = (ListBox*) GetWindow();
     if ( pBox )
@@ -1764,7 +1764,7 @@ void VCLXListBox::setDropDownLineCount( sal_Int16 nLines ) 
throw(::com::sun::sta
 
 sal_Int16 VCLXListBox::getDropDownLineCount() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int16 nLines = 0;
     ListBox* pBox = (ListBox*) GetWindow();
@@ -1775,7 +1775,7 @@ sal_Int16 VCLXListBox::getDropDownLineCount() 
throw(::com::sun::star::uno::Runti
 
 sal_Bool VCLXListBox::isMutipleMode() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Bool bMulti = sal_False;
     ListBox* pBox = (ListBox*) GetWindow();
@@ -1786,7 +1786,7 @@ sal_Bool VCLXListBox::isMutipleMode() 
throw(::com::sun::star::uno::RuntimeExcept
 
 void VCLXListBox::setMultipleMode( sal_Bool bMulti ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pBox = (ListBox*) GetWindow();
     if ( pBox )
@@ -1795,7 +1795,7 @@ void VCLXListBox::setMultipleMode( sal_Bool bMulti ) 
throw(::com::sun::star::uno
 
 void VCLXListBox::makeVisible( sal_Int16 nEntry ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pBox = (ListBox*) GetWindow();
     if ( pBox )
@@ -1854,14 +1854,14 @@ void VCLXListBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent 
)
 
 ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > 
VCLXListBox::CreateAccessibleContext()
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     return getAccessibleFactory().createAccessibleContext( this );
 }
 
 void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pListBox = (ListBox*)GetWindow();
     if ( pListBox )
@@ -1938,7 +1938,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const 
::com:
 
 ::com::sun::star::uno::Any VCLXListBox::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     ListBox* pListBox = (ListBox*)GetWindow();
@@ -1992,7 +1992,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const 
::com:
 
 ::com::sun::star::awt::Size VCLXListBox::getMinimumSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     ListBox* pListBox = (ListBox*) GetWindow();
@@ -2003,7 +2003,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const 
::com:
 
 ::com::sun::star::awt::Size VCLXListBox::getPreferredSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     ListBox* pListBox = (ListBox*) GetWindow();
@@ -2018,7 +2018,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const 
::com:
 
 ::com::sun::star::awt::Size VCLXListBox::calcAdjustedSize( const ::com::sun::star::awt::Size& 
rNewSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz = VCLSize(rNewSize);
     ListBox* pListBox = (ListBox*) GetWindow();
@@ -2029,7 +2029,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const 
::com:
 
 ::com::sun::star::awt::Size VCLXListBox::getMinimumSize( sal_Int16 nCols, sal_Int16 nLines ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     ListBox* pListBox = (ListBox*) GetWindow();
@@ -2040,7 +2040,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const 
::com:
 
 void VCLXListBox::getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     nCols = nLines = 0;
     ListBox* pListBox = (ListBox*) GetWindow();
@@ -2098,7 +2098,7 @@ namespace
 
 void SAL_CALL VCLXListBox::listItemInserted( const ItemListEvent& i_rEvent ) throw 
(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pListBox = dynamic_cast< ListBox* >( GetWindow() );
 
@@ -2113,7 +2113,7 @@ void SAL_CALL VCLXListBox::listItemInserted( const ItemListEvent& i_rEvent ) 
thr
 
 void SAL_CALL VCLXListBox::listItemRemoved( const ItemListEvent& i_rEvent ) throw 
(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pListBox = dynamic_cast< ListBox* >( GetWindow() );
 
@@ -2126,7 +2126,7 @@ void SAL_CALL VCLXListBox::listItemRemoved( const ItemListEvent& i_rEvent ) 
thro
 
 void SAL_CALL VCLXListBox::listItemModified( const ItemListEvent& i_rEvent ) throw 
(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pListBox = dynamic_cast< ListBox* >( GetWindow() );
 
@@ -2145,7 +2145,7 @@ void SAL_CALL VCLXListBox::listItemModified( const ItemListEvent& i_rEvent ) 
thr
 
 void SAL_CALL VCLXListBox::allItemsRemoved( const EventObject& i_rEvent ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pListBox = dynamic_cast< ListBox* >( GetWindow() );
     ENSURE_OR_RETURN_VOID( pListBox, "VCLXListBox::listItemModified: no ListBox?!" );
@@ -2157,7 +2157,7 @@ void SAL_CALL VCLXListBox::allItemsRemoved( const EventObject& i_rEvent ) 
throw
 
 void SAL_CALL VCLXListBox::itemListChanged( const EventObject& i_rEvent ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ListBox* pListBox = dynamic_cast< ListBox* >( GetWindow() );
     ENSURE_OR_RETURN_VOID( pListBox, "VCLXListBox::listItemModified: no ListBox?!" );
@@ -2228,7 +2228,7 @@ IMPL_XTYPEPROVIDER_END
 
 void VCLXMessageBox::setCaptionText( const ::rtl::OUString& rText ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -2237,7 +2237,7 @@ void VCLXMessageBox::setCaptionText( const ::rtl::OUString& rText ) 
throw(::com:
 
 ::rtl::OUString VCLXMessageBox::getCaptionText() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     String aText;
     Window* pWindow = GetWindow();
@@ -2248,7 +2248,7 @@ void VCLXMessageBox::setCaptionText( const ::rtl::OUString& rText ) 
throw(::com:
 
 void VCLXMessageBox::setMessageText( const ::rtl::OUString& rText ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     MessBox* pBox = (MessBox*)GetWindow();
     if ( pBox )
@@ -2257,7 +2257,7 @@ void VCLXMessageBox::setMessageText( const ::rtl::OUString& rText ) 
throw(::com:
 
 ::rtl::OUString VCLXMessageBox::getMessageText() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aText;
     MessBox* pBox = (MessBox*)GetWindow();
@@ -2268,7 +2268,7 @@ void VCLXMessageBox::setMessageText( const ::rtl::OUString& rText ) 
throw(::com:
 
 sal_Int16 VCLXMessageBox::execute() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     MessBox* pBox = (MessBox*)GetWindow();
     return pBox ? pBox->Execute() : 0;
@@ -2276,7 +2276,7 @@ sal_Int16 VCLXMessageBox::execute() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 ::com::sun::star::awt::Size SAL_CALL VCLXMessageBox::getMinimumSize() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return ::com::sun::star::awt::Size( 250, 100 );
 }
 
@@ -2319,7 +2319,7 @@ IMPL_XTYPEPROVIDER_END
 
 void SAL_CALL VCLXDialog::endDialog( ::sal_Int32 i_result ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Dialog* pDialog = dynamic_cast< Dialog* >( GetWindow() );
     if ( pDialog )
@@ -2328,7 +2328,7 @@ void SAL_CALL VCLXDialog::endDialog( ::sal_Int32 i_result ) throw 
(RuntimeExcept
 
 void SAL_CALL VCLXDialog::setHelpId( ::sal_Int32 i_id ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -2337,7 +2337,7 @@ void SAL_CALL VCLXDialog::setHelpId( ::sal_Int32 i_id ) throw 
(RuntimeException)
 
 void VCLXDialog::setTitle( const ::rtl::OUString& Title ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -2346,7 +2346,7 @@ void VCLXDialog::setTitle( const ::rtl::OUString& Title ) 
throw(::com::sun::star
 
 ::rtl::OUString VCLXDialog::getTitle() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aTitle;
     Window* pWindow = GetWindow();
@@ -2357,7 +2357,7 @@ void VCLXDialog::setTitle( const ::rtl::OUString& Title ) 
throw(::com::sun::star
 
 sal_Int16 VCLXDialog::execute() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int16 nRet = 0;
     if ( GetWindow() )
@@ -2394,7 +2394,7 @@ void VCLXDialog::endExecute() throw(::com::sun::star::uno::RuntimeException)
 
 void SAL_CALL VCLXDialog::draw( sal_Int32 nX, sal_Int32 nY ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     Window* pWindow = GetWindow();
 
     if ( pWindow )
@@ -2414,7 +2414,7 @@ void SAL_CALL VCLXDialog::draw( sal_Int32 nX, sal_Int32 nY ) 
throw(::com::sun::s
 {
     ::com::sun::star::awt::DeviceInfo aInfo = VCLXDevice::getInfo();
 
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     Dialog* pDlg = (Dialog*) GetWindow();
     if ( pDlg )
         pDlg->GetDrawWindowBorder( aInfo.LeftInset, aInfo.TopInset, aInfo.RightInset, 
aInfo.BottomInset );
@@ -2430,7 +2430,7 @@ throw(::com::sun::star::uno::RuntimeException)
 {
     if (rtl::OUString::createFromAscii( "Cancel" ) == PropertyName)
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
         if ( GetWindow() )
         {
             sal_Int8 nCancel = 0;
@@ -2446,7 +2446,7 @@ throw(::com::sun::star::uno::RuntimeException)
     const ::rtl::OUString& /*PropertyName*/ )
 throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aRet;
     return aRet;
@@ -2457,7 +2457,7 @@ void SAL_CALL VCLXDialog::setProperty(
     const ::com::sun::star::uno::Any& Value )
 throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Dialog* pDialog = (Dialog*)GetWindow();
     if ( pDialog )
@@ -2524,7 +2524,7 @@ IMPL_XTYPEPROVIDER_END
 void SAL_CALL VCLXTabPage::draw( sal_Int32 nX, sal_Int32 nY )
 throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     Window* pWindow = GetWindow();
 
     if ( pWindow )
@@ -2553,7 +2553,7 @@ void SAL_CALL VCLXTabPage::setProperty(
     const ::com::sun::star::uno::Any& Value )
 throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TabPage* pTabPage = (TabPage*)GetWindow();
     if ( pTabPage )
@@ -2618,7 +2618,7 @@ VCLXFixedHyperlink::~VCLXFixedHyperlink()
 
 void VCLXFixedHyperlink::dispose() throw(::com::sun::star::uno::RuntimeException)
 {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         ::com::sun::star::lang::EventObject aObj;
         aObj.Source = (::cppu::OWeakObject*)this;
@@ -2682,7 +2682,7 @@ void VCLXFixedHyperlink::ProcessWindowEvent( const VclWindowEvent& 
rVclWindowEve
 
 void VCLXFixedHyperlink::setText( const ::rtl::OUString& Text ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::toolkit::FixedHyperlinkBase* pBase = (::toolkit::FixedHyperlinkBase*)GetWindow();
     if ( pBase )
@@ -2691,7 +2691,7 @@ void VCLXFixedHyperlink::setText( const ::rtl::OUString& Text ) 
throw(::com::sun
 
 ::rtl::OUString VCLXFixedHyperlink::getText() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aText;
     Window* pWindow = GetWindow();
@@ -2702,7 +2702,7 @@ void VCLXFixedHyperlink::setText( const ::rtl::OUString& Text ) 
throw(::com::sun
 
 void VCLXFixedHyperlink::setURL( const ::rtl::OUString& URL ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::toolkit::FixedHyperlinkBase* pBase = (::toolkit::FixedHyperlinkBase*)GetWindow();
     if ( pBase )
@@ -2711,7 +2711,7 @@ void VCLXFixedHyperlink::setURL( const ::rtl::OUString& URL ) 
throw(::com::sun::
 
 ::rtl::OUString VCLXFixedHyperlink::getURL(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aText;
     ::toolkit::FixedHyperlinkBase* pBase = (::toolkit::FixedHyperlinkBase*)GetWindow();
@@ -2722,7 +2722,7 @@ void VCLXFixedHyperlink::setURL( const ::rtl::OUString& URL ) 
throw(::com::sun::
 
 void VCLXFixedHyperlink::setAlignment( short nAlign ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -2743,7 +2743,7 @@ void VCLXFixedHyperlink::setAlignment( short nAlign ) 
throw(::com::sun::star::un
 
 short VCLXFixedHyperlink::getAlignment() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     short nAlign = 0;
     Window* pWindow = GetWindow();
@@ -2762,19 +2762,19 @@ short VCLXFixedHyperlink::getAlignment() 
throw(::com::sun::star::uno::RuntimeExc
 
 void VCLXFixedHyperlink::addActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l  )throw(::com::sun::star::uno::RuntimeException)
 {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
         maActionListeners.addInterface( l );
 }
 
 void VCLXFixedHyperlink::removeActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
         maActionListeners.removeInterface( l );
 }
 
 ::com::sun::star::awt::Size VCLXFixedHyperlink::getMinimumSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     FixedText* pFixedText = (FixedText*)GetWindow();
@@ -2790,7 +2790,7 @@ void VCLXFixedHyperlink::removeActionListener( const 
::com::sun::star::uno::Refe
 
 ::com::sun::star::awt::Size VCLXFixedHyperlink::calcAdjustedSize( const 
::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aSz = rNewSize;
     ::com::sun::star::awt::Size aMinSz = getMinimumSize();
@@ -2802,7 +2802,7 @@ void VCLXFixedHyperlink::removeActionListener( const 
::com::sun::star::uno::Refe
 
 void VCLXFixedHyperlink::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::toolkit::FixedHyperlinkBase* pBase = (::toolkit::FixedHyperlinkBase*)GetWindow();
     if ( pBase )
@@ -2836,7 +2836,7 @@ void VCLXFixedHyperlink::setProperty( const ::rtl::OUString& PropertyName, 
const
 
 ::com::sun::star::uno::Any VCLXFixedHyperlink::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     ::toolkit::FixedHyperlinkBase* pBase = (::toolkit::FixedHyperlinkBase*)GetWindow();
@@ -2944,7 +2944,7 @@ IMPL_XTYPEPROVIDER_END
 
 void VCLXFixedText::setText( const ::rtl::OUString& Text ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -2953,7 +2953,7 @@ void VCLXFixedText::setText( const ::rtl::OUString& Text ) 
throw(::com::sun::sta
 
 ::rtl::OUString VCLXFixedText::getText() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aText;
     Window* pWindow = GetWindow();
@@ -2964,7 +2964,7 @@ void VCLXFixedText::setText( const ::rtl::OUString& Text ) 
throw(::com::sun::sta
 
 void VCLXFixedText::setAlignment( short nAlign ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -2985,7 +2985,7 @@ void VCLXFixedText::setAlignment( short nAlign ) 
throw(::com::sun::star::uno::Ru
 
 short VCLXFixedText::getAlignment() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     short nAlign = 0;
     Window* pWindow = GetWindow();
@@ -3004,7 +3004,7 @@ short VCLXFixedText::getAlignment() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 ::com::sun::star::awt::Size VCLXFixedText::getMinimumSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     FixedText* pFixedText = (FixedText*)GetWindow();
@@ -3020,7 +3020,7 @@ short VCLXFixedText::getAlignment() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 ::com::sun::star::awt::Size VCLXFixedText::calcAdjustedSize( const ::com::sun::star::awt::Size& 
rMaxSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aAdjustedSize( VCLUnoHelper::ConvertToVCLSize( rMaxSize ) );
     FixedText* pFixedText = (FixedText*)GetWindow();
@@ -3087,7 +3087,7 @@ IMPL_XTYPEPROVIDER_END
 // ::com::sun::star::lang::XComponent
 void VCLXScrollBar::dispose() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::lang::EventObject aObj;
     aObj.Source = (::cppu::OWeakObject*)this;
@@ -3098,19 +3098,19 @@ void VCLXScrollBar::dispose() throw(::com::sun::star::uno::RuntimeException)
 // ::com::sun::star::awt::XScrollbar
 void VCLXScrollBar::addAdjustmentListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XAdjustmentListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maAdjustmentListeners.addInterface( l );
 }
 
 void VCLXScrollBar::removeAdjustmentListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XAdjustmentListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maAdjustmentListeners.removeInterface( l );
 }
 
 void VCLXScrollBar::setValue( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
     if ( pScrollBar )
@@ -3119,7 +3119,7 @@ void VCLXScrollBar::setValue( sal_Int32 n ) 
throw(::com::sun::star::uno::Runtime
 
 void VCLXScrollBar::setValues( sal_Int32 nValue, sal_Int32 nVisible, sal_Int32 nMax ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
     if ( pScrollBar )
@@ -3132,7 +3132,7 @@ void VCLXScrollBar::setValues( sal_Int32 nValue, sal_Int32 nVisible, 
sal_Int32 n
 
 sal_Int32 VCLXScrollBar::getValue() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
     return pScrollBar ? pScrollBar->GetThumbPos() : 0;
@@ -3140,7 +3140,7 @@ sal_Int32 VCLXScrollBar::getValue() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 void VCLXScrollBar::setMaximum( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
     if ( pScrollBar )
@@ -3149,7 +3149,7 @@ void VCLXScrollBar::setMaximum( sal_Int32 n ) 
throw(::com::sun::star::uno::Runti
 
 sal_Int32 VCLXScrollBar::getMaximum() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
     return pScrollBar ? pScrollBar->GetRangeMax() : 0;
@@ -3157,7 +3157,7 @@ sal_Int32 VCLXScrollBar::getMaximum() 
throw(::com::sun::star::uno::RuntimeExcept
 
 void VCLXScrollBar::setMinimum( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = static_cast< ScrollBar* >( GetWindow() );
     if ( pScrollBar )
@@ -3166,7 +3166,7 @@ void VCLXScrollBar::setMinimum( sal_Int32 n ) 
throw(::com::sun::star::uno::Runti
 
 sal_Int32 VCLXScrollBar::getMinimum() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = static_cast< ScrollBar* >( GetWindow() );
     return pScrollBar ? pScrollBar->GetRangeMin() : 0;
@@ -3174,7 +3174,7 @@ sal_Int32 VCLXScrollBar::getMinimum() 
throw(::com::sun::star::uno::RuntimeExcept
 
 void VCLXScrollBar::setLineIncrement( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
     if ( pScrollBar )
@@ -3183,7 +3183,7 @@ void VCLXScrollBar::setLineIncrement( sal_Int32 n ) 
throw(::com::sun::star::uno:
 
 sal_Int32 VCLXScrollBar::getLineIncrement() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
     return pScrollBar ? pScrollBar->GetLineSize() : 0;
@@ -3191,7 +3191,7 @@ sal_Int32 VCLXScrollBar::getLineIncrement() 
throw(::com::sun::star::uno::Runtime
 
 void VCLXScrollBar::setBlockIncrement( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
     if ( pScrollBar )
@@ -3200,7 +3200,7 @@ void VCLXScrollBar::setBlockIncrement( sal_Int32 n ) 
throw(::com::sun::star::uno
 
 sal_Int32 VCLXScrollBar::getBlockIncrement() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
     return pScrollBar ? pScrollBar->GetPageSize() : 0;
@@ -3208,7 +3208,7 @@ sal_Int32 VCLXScrollBar::getBlockIncrement() 
throw(::com::sun::star::uno::Runtim
 
 void VCLXScrollBar::setVisibleSize( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
     if ( pScrollBar )
@@ -3217,7 +3217,7 @@ void VCLXScrollBar::setVisibleSize( sal_Int32 n ) 
throw(::com::sun::star::uno::R
 
 sal_Int32 VCLXScrollBar::getVisibleSize() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
     return pScrollBar ? pScrollBar->GetVisibleSize() : 0;
@@ -3225,7 +3225,7 @@ sal_Int32 VCLXScrollBar::getVisibleSize() 
throw(::com::sun::star::uno::RuntimeEx
 
 void VCLXScrollBar::setOrientation( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Window* pWindow = GetWindow();
     if ( pWindow )
@@ -3244,7 +3244,7 @@ void VCLXScrollBar::setOrientation( sal_Int32 n ) 
throw(::com::sun::star::uno::R
 
 sal_Int32 VCLXScrollBar::getOrientation() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int32 n = 0;
     Window* pWindow = GetWindow();
@@ -3263,7 +3263,7 @@ sal_Int32 VCLXScrollBar::getOrientation() 
throw(::com::sun::star::uno::RuntimeEx
 // ::com::sun::star::awt::VclWindowPeer
 void VCLXScrollBar::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ScrollBar* pScrollBar = (ScrollBar*)GetWindow();
     if ( pScrollBar )
@@ -3378,7 +3378,7 @@ void VCLXScrollBar::setProperty( const ::rtl::OUString& PropertyName, const 
::co
 
 ::com::sun::star::uno::Any VCLXScrollBar::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     ScrollBar* pScrollBar = (ScrollBar*)GetWindow();
@@ -3502,7 +3502,7 @@ void VCLXScrollBar::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent 
)
 
 ::com::sun::star::awt::Size SAL_CALL VCLXScrollBar::getMinimumSize() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return implGetMinimumSize( GetWindow() );
 }
 
@@ -3575,7 +3575,7 @@ IMPL_XTYPEPROVIDER_END
 
 void VCLXEdit::dispose() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::lang::EventObject aObj;
     aObj.Source = (::cppu::OWeakObject*)this;
@@ -3585,19 +3585,19 @@ void VCLXEdit::dispose() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXEdit::addTextListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XTextListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     GetTextListeners().addInterface( l );
 }
 
 void VCLXEdit::removeTextListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XTextListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     GetTextListeners().removeInterface( l );
 }
 
 void VCLXEdit::setText( const ::rtl::OUString& aText ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Edit* pEdit = (Edit*)GetWindow();
     if ( pEdit )
@@ -3614,7 +3614,7 @@ void VCLXEdit::setText( const ::rtl::OUString& aText ) 
throw(::com::sun::star::u
 
 void VCLXEdit::insertText( const ::com::sun::star::awt::Selection& rSel, const ::rtl::OUString& 
aText ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Edit* pEdit = (Edit*)GetWindow();
     if ( pEdit )
@@ -3632,7 +3632,7 @@ void VCLXEdit::insertText( const ::com::sun::star::awt::Selection& rSel, 
const :
 
 ::rtl::OUString VCLXEdit::getText() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aText;
     Window* pWindow = GetWindow();
@@ -3643,7 +3643,7 @@ void VCLXEdit::insertText( const ::com::sun::star::awt::Selection& rSel, 
const :
 
 ::rtl::OUString VCLXEdit::getSelectedText() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aText;
     Edit* pEdit = (Edit*) GetWindow();
@@ -3655,7 +3655,7 @@ void VCLXEdit::insertText( const ::com::sun::star::awt::Selection& rSel, 
const :
 
 void VCLXEdit::setSelection( const ::com::sun::star::awt::Selection& aSelection ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Edit* pEdit = (Edit*) GetWindow();
     if ( pEdit )
@@ -3664,7 +3664,7 @@ void VCLXEdit::setSelection( const ::com::sun::star::awt::Selection& 
aSelection
 
 ::com::sun::star::awt::Selection VCLXEdit::getSelection() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Selection aSel;
     Edit* pEdit = (Edit*) GetWindow();
@@ -3675,7 +3675,7 @@ void VCLXEdit::setSelection( const ::com::sun::star::awt::Selection& 
aSelection
 
 sal_Bool VCLXEdit::isEditable() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Edit* pEdit = (Edit*) GetWindow();
     return ( pEdit && !pEdit->IsReadOnly() && pEdit->IsEnabled() ) ? sal_True : sal_False;
@@ -3683,7 +3683,7 @@ sal_Bool VCLXEdit::isEditable() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXEdit::setEditable( sal_Bool bEditable ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Edit* pEdit = (Edit*) GetWindow();
     if ( pEdit )
@@ -3693,7 +3693,7 @@ void VCLXEdit::setEditable( sal_Bool bEditable ) 
throw(::com::sun::star::uno::Ru
 
 void VCLXEdit::setMaxTextLen( sal_Int16 nLen ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Edit* pEdit = (Edit*) GetWindow();
     if ( pEdit )
@@ -3702,7 +3702,7 @@ void VCLXEdit::setMaxTextLen( sal_Int16 nLen ) 
throw(::com::sun::star::uno::Runt
 
 sal_Int16 VCLXEdit::getMaxTextLen() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Edit* pEdit = (Edit*) GetWindow();
     return pEdit ? pEdit->GetMaxTextLen() : 0;
@@ -3710,7 +3710,7 @@ sal_Int16 VCLXEdit::getMaxTextLen() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 void VCLXEdit::setEchoChar( sal_Unicode cEcho ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Edit* pEdit = (Edit*) GetWindow();
     if ( pEdit )
@@ -3719,7 +3719,7 @@ void VCLXEdit::setEchoChar( sal_Unicode cEcho ) 
throw(::com::sun::star::uno::Run
 
 void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& 
Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Edit* pEdit = (Edit*)GetWindow();
     if ( pEdit )
@@ -3764,7 +3764,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const 
::com::su
 
 ::com::sun::star::uno::Any VCLXEdit::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     Edit* pEdit = (Edit*)GetWindow();
@@ -3796,7 +3796,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const 
::com::su
 
 ::com::sun::star::awt::Size VCLXEdit::getMinimumSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     Edit* pEdit = (Edit*) GetWindow();
@@ -3807,7 +3807,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const 
::com::su
 
 ::com::sun::star::awt::Size VCLXEdit::getPreferredSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     Edit* pEdit = (Edit*) GetWindow();
@@ -3821,7 +3821,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const 
::com::su
 
 ::com::sun::star::awt::Size VCLXEdit::calcAdjustedSize( const ::com::sun::star::awt::Size& 
rNewSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::awt::Size aSz = rNewSize;
     ::com::sun::star::awt::Size aMinSz = getMinimumSize();
@@ -3833,7 +3833,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const 
::com::su
 
 ::com::sun::star::awt::Size VCLXEdit::getMinimumSize( sal_Int16 nCols, sal_Int16 ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     Edit* pEdit = (Edit*) GetWindow();
@@ -3849,7 +3849,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const 
::com::su
 
 void VCLXEdit::getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     nLines = 1;
     nCols = 0;
@@ -3937,14 +3937,14 @@ VCLXComboBox::~VCLXComboBox()
 
 ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > 
VCLXComboBox::CreateAccessibleContext()
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     return getAccessibleFactory().createAccessibleContext( this );
 }
 
 void VCLXComboBox::dispose() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::lang::EventObject aObj;
     aObj.Source = (::cppu::OWeakObject*)this;
@@ -3956,31 +3956,31 @@ void VCLXComboBox::dispose() throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXComboBox::addItemListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maItemListeners.addInterface( l );
 }
 
 void VCLXComboBox::removeItemListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maItemListeners.removeInterface( l );
 }
 
 void VCLXComboBox::addActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionListeners.addInterface( l );
 }
 
 void VCLXComboBox::removeActionListener( const ::com::sun::star::uno::Reference< 
::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     maActionListeners.removeInterface( l );
 }
 
 void VCLXComboBox::addItem( const ::rtl::OUString& aItem, sal_Int16 nPos ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ComboBox* pBox = (ComboBox*) GetWindow();
     if ( pBox )
@@ -3989,7 +3989,7 @@ void VCLXComboBox::addItem( const ::rtl::OUString& aItem, sal_Int16 nPos ) 
throw
 
 void VCLXComboBox::addItems( const ::com::sun::star::uno::Sequence< ::rtl::OUString>& aItems, 
sal_Int16 nPos ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ComboBox* pBox = (ComboBox*) GetWindow();
     if ( pBox )
@@ -4010,7 +4010,7 @@ void VCLXComboBox::addItems( const ::com::sun::star::uno::Sequence< 
::rtl::OUStr
 
 void VCLXComboBox::removeItems( sal_Int16 nPos, sal_Int16 nCount ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ComboBox* pBox = (ComboBox*) GetWindow();
     if ( pBox )
@@ -4022,7 +4022,7 @@ void VCLXComboBox::removeItems( sal_Int16 nPos, sal_Int16 nCount ) 
throw(::com::
 
 sal_Int16 VCLXComboBox::getItemCount() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ComboBox* pBox = (ComboBox*) GetWindow();
     return pBox ? pBox->GetEntryCount() : 0;
@@ -4030,7 +4030,7 @@ sal_Int16 VCLXComboBox::getItemCount() 
throw(::com::sun::star::uno::RuntimeExcep
 
 ::rtl::OUString VCLXComboBox::getItem( sal_Int16 nPos ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aItem;
     ComboBox* pBox = (ComboBox*) GetWindow();
@@ -4041,7 +4041,7 @@ sal_Int16 VCLXComboBox::getItemCount() 
throw(::com::sun::star::uno::RuntimeExcep
 
 ::com::sun::star::uno::Sequence< ::rtl::OUString> VCLXComboBox::getItems() 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Sequence< ::rtl::OUString> aSeq;
     ComboBox* pBox = (ComboBox*) GetWindow();
@@ -4060,7 +4060,7 @@ sal_Int16 VCLXComboBox::getItemCount() 
throw(::com::sun::star::uno::RuntimeExcep
 
 void VCLXComboBox::setDropDownLineCount( sal_Int16 nLines ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ComboBox* pBox = (ComboBox*) GetWindow();
     if ( pBox )
@@ -4069,7 +4069,7 @@ void VCLXComboBox::setDropDownLineCount( sal_Int16 nLines ) 
throw(::com::sun::st
 
 sal_Int16 VCLXComboBox::getDropDownLineCount() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int16 nLines = 0;
     ComboBox* pBox = (ComboBox*) GetWindow();
@@ -4080,7 +4080,7 @@ sal_Int16 VCLXComboBox::getDropDownLineCount() 
throw(::com::sun::star::uno::Runt
 
 void VCLXComboBox::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ComboBox* pComboBox = (ComboBox*)GetWindow();
     if ( pComboBox )
@@ -4130,7 +4130,7 @@ void VCLXComboBox::setProperty( const ::rtl::OUString& PropertyName, const 
::com
 
 ::com::sun::star::uno::Any VCLXComboBox::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     ComboBox* pComboBox = (ComboBox*)GetWindow();
@@ -4218,7 +4218,7 @@ void VCLXComboBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
 
 ::com::sun::star::awt::Size VCLXComboBox::getMinimumSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     ComboBox* pComboBox = (ComboBox*) GetWindow();
@@ -4229,7 +4229,7 @@ void VCLXComboBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
 
 ::com::sun::star::awt::Size VCLXComboBox::getPreferredSize(  ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     ComboBox* pComboBox = (ComboBox*) GetWindow();
@@ -4244,7 +4244,7 @@ void VCLXComboBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
 
 ::com::sun::star::awt::Size VCLXComboBox::calcAdjustedSize( const ::com::sun::star::awt::Size& 
rNewSize ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz = VCLSize(rNewSize);
     ComboBox* pComboBox = (ComboBox*) GetWindow();
@@ -4255,7 +4255,7 @@ void VCLXComboBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
 
 ::com::sun::star::awt::Size VCLXComboBox::getMinimumSize( sal_Int16 nCols, sal_Int16 nLines ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     Size aSz;
     ComboBox* pComboBox = (ComboBox*) GetWindow();
@@ -4266,7 +4266,7 @@ void VCLXComboBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
 
 void VCLXComboBox::getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     nCols = nLines = 0;
     ComboBox* pComboBox = (ComboBox*) GetWindow();
@@ -4280,7 +4280,7 @@ void VCLXComboBox::getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) 
thr
 }
 void SAL_CALL VCLXComboBox::listItemInserted( const ItemListEvent& i_rEvent ) throw 
(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ComboBox* pComboBox = dynamic_cast< ComboBox* >( GetWindow() );
 
@@ -4295,7 +4295,7 @@ void SAL_CALL VCLXComboBox::listItemInserted( const ItemListEvent& i_rEvent ) 
th
 
 void SAL_CALL VCLXComboBox::listItemRemoved( const ItemListEvent& i_rEvent ) throw 
(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ComboBox* pComboBox = dynamic_cast< ComboBox* >( GetWindow() );
 
@@ -4308,7 +4308,7 @@ void SAL_CALL VCLXComboBox::listItemRemoved( const ItemListEvent& i_rEvent ) 
thr
 
 void SAL_CALL VCLXComboBox::listItemModified( const ItemListEvent& i_rEvent ) throw 
(RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ComboBox* pComboBox = dynamic_cast< ComboBox* >( GetWindow() );
 
@@ -4327,7 +4327,7 @@ void SAL_CALL VCLXComboBox::listItemModified( const ItemListEvent& i_rEvent ) 
th
 
 void SAL_CALL VCLXComboBox::allItemsRemoved( const EventObject& i_rEvent ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ComboBox* pComboBox = dynamic_cast< ComboBox* >( GetWindow() );
     ENSURE_OR_RETURN_VOID( pComboBox, "VCLXComboBox::listItemModified: no ComboBox?!" );
@@ -4339,7 +4339,7 @@ void SAL_CALL VCLXComboBox::allItemsRemoved( const EventObject& i_rEvent ) 
throw
 
 void SAL_CALL VCLXComboBox::itemListChanged( const EventObject& i_rEvent ) throw (RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ComboBox* pComboBox = dynamic_cast< ComboBox* >( GetWindow() );
     ENSURE_OR_RETURN_VOID( pComboBox, "VCLXComboBox::listItemModified: no ComboBox?!" );
@@ -4398,7 +4398,7 @@ VCLXFormattedSpinField::~VCLXFormattedSpinField()
 
 void VCLXFormattedSpinField::setStrictFormat( sal_Bool bStrict )
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormatterBase* pFormatter = GetFormatter();
     if ( pFormatter )
@@ -4414,7 +4414,7 @@ sal_Bool VCLXFormattedSpinField::isStrictFormat()
 
 void VCLXFormattedSpinField::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     FormatterBase* pFormatter = GetFormatter();
     if ( pFormatter )
@@ -4453,7 +4453,7 @@ void VCLXFormattedSpinField::setProperty( const ::rtl::OUString& 
PropertyName, c
 
 ::com::sun::star::uno::Any VCLXFormattedSpinField::getProperty( const ::rtl::OUString& 
PropertyName ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     FormatterBase* pFormatter = GetFormatter();
@@ -4547,7 +4547,7 @@ IMPL_XTYPEPROVIDER_END
 
 void VCLXDateField::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -4616,7 +4616,7 @@ void VCLXDateField::setProperty( const ::rtl::OUString& PropertyName, const 
::co
 
 ::com::sun::star::uno::Any VCLXDateField::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     FormatterBase* pFormatter = GetFormatter();
@@ -4662,7 +4662,7 @@ void VCLXDateField::setProperty( const ::rtl::OUString& PropertyName, const 
::co
 
 void VCLXDateField::setDate( sal_Int32 nDate ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     DateField* pDateField = (DateField*) GetWindow();
     if ( pDateField )
@@ -4679,7 +4679,7 @@ void VCLXDateField::setDate( sal_Int32 nDate ) 
throw(::com::sun::star::uno::Runt
 
 sal_Int32 VCLXDateField::getDate() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int32 nDate = 0;
     DateField* pDateField = (DateField*) GetWindow();
@@ -4691,7 +4691,7 @@ sal_Int32 VCLXDateField::getDate() 
throw(::com::sun::star::uno::RuntimeException
 
 void VCLXDateField::setMin( sal_Int32 nDate ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     DateField* pDateField = (DateField*) GetWindow();
     if ( pDateField )
@@ -4700,7 +4700,7 @@ void VCLXDateField::setMin( sal_Int32 nDate ) 
throw(::com::sun::star::uno::Runti
 
 sal_Int32 VCLXDateField::getMin() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int32 nDate = 0;
     DateField* pDateField = (DateField*) GetWindow();
@@ -4712,7 +4712,7 @@ sal_Int32 VCLXDateField::getMin() 
throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXDateField::setMax( sal_Int32 nDate ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     DateField* pDateField = (DateField*) GetWindow();
     if ( pDateField )
@@ -4721,7 +4721,7 @@ void VCLXDateField::setMax( sal_Int32 nDate ) 
throw(::com::sun::star::uno::Runti
 
 sal_Int32 VCLXDateField::getMax() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int32 nDate = 0;
     DateField* pDateField = (DateField*) GetWindow();
@@ -4733,7 +4733,7 @@ sal_Int32 VCLXDateField::getMax() 
throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXDateField::setFirst( sal_Int32 nDate ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     DateField* pDateField = (DateField*) GetWindow();
     if ( pDateField )
@@ -4742,7 +4742,7 @@ void VCLXDateField::setFirst( sal_Int32 nDate ) 
throw(::com::sun::star::uno::Run
 
 sal_Int32 VCLXDateField::getFirst() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int32 nDate = 0;
     DateField* pDateField = (DateField*) GetWindow();
@@ -4754,7 +4754,7 @@ sal_Int32 VCLXDateField::getFirst() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 void VCLXDateField::setLast( sal_Int32 nDate ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     DateField* pDateField = (DateField*) GetWindow();
     if ( pDateField )
@@ -4763,7 +4763,7 @@ void VCLXDateField::setLast( sal_Int32 nDate ) 
throw(::com::sun::star::uno::Runt
 
 sal_Int32 VCLXDateField::getLast() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int32 nDate = 0;
     DateField* pDateField = (DateField*) GetWindow();
@@ -4775,7 +4775,7 @@ sal_Int32 VCLXDateField::getLast() 
throw(::com::sun::star::uno::RuntimeException
 
 void VCLXDateField::setLongFormat( sal_Bool bLong ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     DateField* pDateField = (DateField*) GetWindow();
     if ( pDateField )
@@ -4784,7 +4784,7 @@ void VCLXDateField::setLongFormat( sal_Bool bLong ) 
throw(::com::sun::star::uno:
 
 sal_Bool VCLXDateField::isLongFormat() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     DateField* pDateField = (DateField*) GetWindow();
     return pDateField ? pDateField->IsLongFormat() : sal_False;
@@ -4792,7 +4792,7 @@ sal_Bool VCLXDateField::isLongFormat() 
throw(::com::sun::star::uno::RuntimeExcep
 
 void VCLXDateField::setEmpty() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     DateField* pDateField = (DateField*) GetWindow();
     if ( pDateField )
@@ -4809,7 +4809,7 @@ void VCLXDateField::setEmpty() throw(::com::sun::star::uno::RuntimeException)
 
 sal_Bool VCLXDateField::isEmpty() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     DateField* pDateField = (DateField*) GetWindow();
     return pDateField ? pDateField->IsEmptyDate() : sal_False;
@@ -4889,7 +4889,7 @@ IMPL_XTYPEPROVIDER_END
 
 void VCLXTimeField::setTime( sal_Int32 nTime ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TimeField* pTimeField = (TimeField*) GetWindow();
     if ( pTimeField )
@@ -4906,7 +4906,7 @@ void VCLXTimeField::setTime( sal_Int32 nTime ) 
throw(::com::sun::star::uno::Runt
 
 sal_Int32 VCLXTimeField::getTime() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int32 nTime = 0;
     TimeField* pTimeField = (TimeField*) GetWindow();
@@ -4918,7 +4918,7 @@ sal_Int32 VCLXTimeField::getTime() 
throw(::com::sun::star::uno::RuntimeException
 
 void VCLXTimeField::setMin( sal_Int32 nTime ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TimeField* pTimeField = (TimeField*) GetWindow();
     if ( pTimeField )
@@ -4927,7 +4927,7 @@ void VCLXTimeField::setMin( sal_Int32 nTime ) 
throw(::com::sun::star::uno::Runti
 
 sal_Int32 VCLXTimeField::getMin() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int32 nTime = 0;
     TimeField* pTimeField = (TimeField*) GetWindow();
@@ -4939,7 +4939,7 @@ sal_Int32 VCLXTimeField::getMin() 
throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXTimeField::setMax( sal_Int32 nTime ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TimeField* pTimeField = (TimeField*) GetWindow();
     if ( pTimeField )
@@ -4948,7 +4948,7 @@ void VCLXTimeField::setMax( sal_Int32 nTime ) 
throw(::com::sun::star::uno::Runti
 
 sal_Int32 VCLXTimeField::getMax() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int32 nTime = 0;
     TimeField* pTimeField = (TimeField*) GetWindow();
@@ -4960,7 +4960,7 @@ sal_Int32 VCLXTimeField::getMax() 
throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXTimeField::setFirst( sal_Int32 nTime ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TimeField* pTimeField = (TimeField*) GetWindow();
     if ( pTimeField )
@@ -4969,7 +4969,7 @@ void VCLXTimeField::setFirst( sal_Int32 nTime ) 
throw(::com::sun::star::uno::Run
 
 sal_Int32 VCLXTimeField::getFirst() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int32 nTime = 0;
     TimeField* pTimeField = (TimeField*) GetWindow();
@@ -4981,7 +4981,7 @@ sal_Int32 VCLXTimeField::getFirst() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 void VCLXTimeField::setLast( sal_Int32 nTime ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TimeField* pTimeField = (TimeField*) GetWindow();
     if ( pTimeField )
@@ -4990,7 +4990,7 @@ void VCLXTimeField::setLast( sal_Int32 nTime ) 
throw(::com::sun::star::uno::Runt
 
 sal_Int32 VCLXTimeField::getLast() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     sal_Int32 nTime = 0;
     TimeField* pTimeField = (TimeField*) GetWindow();
@@ -5002,7 +5002,7 @@ sal_Int32 VCLXTimeField::getLast() 
throw(::com::sun::star::uno::RuntimeException
 
 void VCLXTimeField::setEmpty() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TimeField* pTimeField = (TimeField*) GetWindow();
     if ( pTimeField )
@@ -5011,7 +5011,7 @@ void VCLXTimeField::setEmpty() throw(::com::sun::star::uno::RuntimeException)
 
 sal_Bool VCLXTimeField::isEmpty() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     TimeField* pTimeField = (TimeField*) GetWindow();
     return pTimeField ? pTimeField->IsEmptyTime() : sal_False;
@@ -5030,7 +5030,7 @@ sal_Bool VCLXTimeField::isStrictFormat() 
throw(::com::sun::star::uno::RuntimeExc
 
 void VCLXTimeField::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -5092,7 +5092,7 @@ void VCLXTimeField::setProperty( const ::rtl::OUString& PropertyName, const 
::co
 
 ::com::sun::star::uno::Any VCLXTimeField::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     if ( GetWindow() )
@@ -5193,7 +5193,7 @@ IMPL_XTYPEPROVIDER_END
 
 void VCLXNumericField::setValue( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
     if ( pNumericFormatter )
@@ -5217,7 +5217,7 @@ void VCLXNumericField::setValue( double Value ) 
throw(::com::sun::star::uno::Run
 
 double VCLXNumericField::getValue() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
     return pNumericFormatter
@@ -5227,7 +5227,7 @@ double VCLXNumericField::getValue() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 void VCLXNumericField::setMin( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
     if ( pNumericFormatter )
@@ -5237,7 +5237,7 @@ void VCLXNumericField::setMin( double Value ) 
throw(::com::sun::star::uno::Runti
 
 double VCLXNumericField::getMin() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
     return pNumericFormatter
@@ -5247,7 +5247,7 @@ double VCLXNumericField::getMin() 
throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXNumericField::setMax( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
     if ( pNumericFormatter )
@@ -5257,7 +5257,7 @@ void VCLXNumericField::setMax( double Value ) 
throw(::com::sun::star::uno::Runti
 
 double VCLXNumericField::getMax() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
     return pNumericFormatter
@@ -5267,7 +5267,7 @@ double VCLXNumericField::getMax() 
throw(::com::sun::star::uno::RuntimeException)
 
 void VCLXNumericField::setFirst( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericField* pNumericField = (NumericField*) GetWindow();
     if ( pNumericField )
@@ -5277,7 +5277,7 @@ void VCLXNumericField::setFirst( double Value ) 
throw(::com::sun::star::uno::Run
 
 double VCLXNumericField::getFirst() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericField* pNumericField = (NumericField*) GetWindow();
     return pNumericField
@@ -5287,7 +5287,7 @@ double VCLXNumericField::getFirst() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 void VCLXNumericField::setLast( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericField* pNumericField = (NumericField*) GetWindow();
     if ( pNumericField )
@@ -5297,7 +5297,7 @@ void VCLXNumericField::setLast( double Value ) 
throw(::com::sun::star::uno::Runt
 
 double VCLXNumericField::getLast() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericField* pNumericField = (NumericField*) GetWindow();
     return pNumericField
@@ -5318,7 +5318,7 @@ sal_Bool VCLXNumericField::isStrictFormat() 
throw(::com::sun::star::uno::Runtime
 
 void VCLXNumericField::setSpinSize( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericField* pNumericField = (NumericField*) GetWindow();
     if ( pNumericField )
@@ -5328,7 +5328,7 @@ void VCLXNumericField::setSpinSize( double Value ) 
throw(::com::sun::star::uno::
 
 double VCLXNumericField::getSpinSize() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericField* pNumericField = (NumericField*) GetWindow();
     return pNumericField
@@ -5338,7 +5338,7 @@ double VCLXNumericField::getSpinSize() 
throw(::com::sun::star::uno::RuntimeExcep
 
 void VCLXNumericField::setDecimalDigits( sal_Int16 Value ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
     if ( pNumericFormatter )
@@ -5351,7 +5351,7 @@ void VCLXNumericField::setDecimalDigits( sal_Int16 Value ) 
throw(::com::sun::sta
 
 sal_Int16 VCLXNumericField::getDecimalDigits() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
     return pNumericFormatter ? pNumericFormatter->GetDecimalDigits() : 0;
@@ -5359,7 +5359,7 @@ sal_Int16 VCLXNumericField::getDecimalDigits() 
throw(::com::sun::star::uno::Runt
 
 void VCLXNumericField::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -5428,7 +5428,7 @@ void VCLXNumericField::setProperty( const ::rtl::OUString& PropertyName, 
const :
 
 ::com::sun::star::uno::Any VCLXNumericField::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     FormatterBase* pFormatter = GetFormatter();
@@ -5553,12 +5553,12 @@ IMPL_XTYPEPROVIDER_END
 #define METRIC_MAP_PAIR(method,parent) \
     sal_Int64 VCLXMetricField::get##method( sal_Int16 nUnit ) throw 
(::com::sun::star::uno::RuntimeException) \
     { \
-        ::osl::SolarGuard aGuard( GetMutex() ); \
+        SolarMutexGuard aGuard; \
         return GetMetric##parent()->Get##method( MetricUnitUnoToVcl( nUnit ) ); \
     } \
     void VCLXMetricField::set##method( sal_Int64 nValue, sal_Int16 nUnit ) throw 
(::com::sun::star::uno::RuntimeException) \
     { \
-        ::osl::SolarGuard aGuard( GetMutex() ); \
+        SolarMutexGuard aGuard; \
         GetMetric##parent()->Set##method( nValue, MetricUnitUnoToVcl( nUnit ) ); \
     }
 
@@ -5571,13 +5571,13 @@ METRIC_MAP_PAIR(Last,  Field)
 
 ::sal_Int64 VCLXMetricField::getValue( ::sal_Int16 nUnit ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return GetMetricFormatter()->GetValue( MetricUnitUnoToVcl( nUnit ) );
 }
 
 ::sal_Int64 VCLXMetricField::getCorrectedValue( ::sal_Int16 nUnit ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return GetMetricFormatter()->GetCorrectedValue( MetricUnitUnoToVcl( nUnit ) );
 }
 
@@ -5597,14 +5597,14 @@ void VCLXMetricField::CallListeners()
 
 void VCLXMetricField::setValue( ::sal_Int64 Value, ::sal_Int16 Unit ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     GetMetricFormatter()->SetValue( Value, MetricUnitUnoToVcl( Unit ) );
     CallListeners();
 }
 
 void VCLXMetricField::setUserValue( ::sal_Int64 Value, ::sal_Int16 Unit ) throw 
(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     GetMetricFormatter()->SetUserValue( Value, MetricUnitUnoToVcl( Unit ) );
     CallListeners();
 }
@@ -5621,25 +5621,25 @@ sal_Bool VCLXMetricField::isStrictFormat() 
throw(::com::sun::star::uno::RuntimeE
 
 void VCLXMetricField::setSpinSize( sal_Int64 Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     GetMetricField()->SetSpinSize( Value );
 }
 
 sal_Int64 VCLXMetricField::getSpinSize() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     return GetMetricField()->GetSpinSize();
 }
 
 void VCLXMetricField::setDecimalDigits( sal_Int16 Value ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
     GetMetricFormatter()->SetDecimalDigits( Value );
 }
 
 sal_Int16 VCLXMetricField::getDecimalDigits() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
     return pNumericFormatter ? pNumericFormatter->GetDecimalDigits() : 0;
@@ -5647,7 +5647,7 @@ sal_Int16 VCLXMetricField::getDecimalDigits() 
throw(::com::sun::star::uno::Runti
 
 void VCLXMetricField::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -5693,7 +5693,7 @@ void VCLXMetricField::setProperty( const ::rtl::OUString& PropertyName, const 
::
 
 ::com::sun::star::uno::Any VCLXMetricField::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     FormatterBase* pFormatter = GetFormatter();
@@ -5788,7 +5788,7 @@ IMPL_XTYPEPROVIDER_END
 
 void VCLXCurrencyField::setValue( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
     if ( pCurrencyFormatter )
@@ -5812,7 +5812,7 @@ void VCLXCurrencyField::setValue( double Value ) 
throw(::com::sun::star::uno::Ru
 
 double VCLXCurrencyField::getValue() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
     return pCurrencyFormatter
@@ -5822,7 +5822,7 @@ double VCLXCurrencyField::getValue() 
throw(::com::sun::star::uno::RuntimeExcepti
 
 void VCLXCurrencyField::setMin( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
     if ( pCurrencyFormatter )
@@ -5832,7 +5832,7 @@ void VCLXCurrencyField::setMin( double Value ) 
throw(::com::sun::star::uno::Runt
 
 double VCLXCurrencyField::getMin() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
     return pCurrencyFormatter
@@ -5842,7 +5842,7 @@ double VCLXCurrencyField::getMin() 
throw(::com::sun::star::uno::RuntimeException
 
 void VCLXCurrencyField::setMax( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
     if ( pCurrencyFormatter )
@@ -5852,7 +5852,7 @@ void VCLXCurrencyField::setMax( double Value ) 
throw(::com::sun::star::uno::Runt
 
 double VCLXCurrencyField::getMax() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
     return pCurrencyFormatter
@@ -5862,7 +5862,7 @@ double VCLXCurrencyField::getMax() 
throw(::com::sun::star::uno::RuntimeException
 
 void VCLXCurrencyField::setFirst( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
     if ( pCurrencyField )
@@ -5872,7 +5872,7 @@ void VCLXCurrencyField::setFirst( double Value ) 
throw(::com::sun::star::uno::Ru
 
 double VCLXCurrencyField::getFirst() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
     return pCurrencyField
@@ -5882,7 +5882,7 @@ double VCLXCurrencyField::getFirst() 
throw(::com::sun::star::uno::RuntimeExcepti
 
 void VCLXCurrencyField::setLast( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
     if ( pCurrencyField )
@@ -5892,7 +5892,7 @@ void VCLXCurrencyField::setLast( double Value ) 
throw(::com::sun::star::uno::Run
 
 double VCLXCurrencyField::getLast() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
     return pCurrencyField
@@ -5902,7 +5902,7 @@ double VCLXCurrencyField::getLast() 
throw(::com::sun::star::uno::RuntimeExceptio
 
 void VCLXCurrencyField::setSpinSize( double Value ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
     if ( pCurrencyField )
@@ -5912,7 +5912,7 @@ void VCLXCurrencyField::setSpinSize( double Value ) 
throw(::com::sun::star::uno:
 
 double VCLXCurrencyField::getSpinSize() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
     return pCurrencyField
@@ -5933,7 +5933,7 @@ sal_Bool VCLXCurrencyField::isStrictFormat() 
throw(::com::sun::star::uno::Runtim
 
 void VCLXCurrencyField::setDecimalDigits( sal_Int16 Value ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
     if ( pCurrencyFormatter )
@@ -5946,7 +5946,7 @@ void VCLXCurrencyField::setDecimalDigits( sal_Int16 Value ) 
throw(::com::sun::st
 
 sal_Int16 VCLXCurrencyField::getDecimalDigits() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
     return pCurrencyFormatter ? pCurrencyFormatter->GetDecimalDigits() : 0;
@@ -5954,7 +5954,7 @@ sal_Int16 VCLXCurrencyField::getDecimalDigits() 
throw(::com::sun::star::uno::Run
 
 void VCLXCurrencyField::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -6030,7 +6030,7 @@ void VCLXCurrencyField::setProperty( const ::rtl::OUString& PropertyName, 
const
 
 ::com::sun::star::uno::Any VCLXCurrencyField::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     FormatterBase* pFormatter = GetFormatter();
@@ -6136,7 +6136,7 @@ IMPL_XTYPEPROVIDER_END
 
 void VCLXPatternField::setMasks( const ::rtl::OUString& EditMask, const ::rtl::OUString& 
LiteralMask ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     PatternField* pPatternField = (PatternField*) GetWindow();
     if ( pPatternField )
@@ -6147,7 +6147,7 @@ void VCLXPatternField::setMasks( const ::rtl::OUString& EditMask, const 
::rtl::O
 
 void VCLXPatternField::getMasks( ::rtl::OUString& EditMask, ::rtl::OUString& LiteralMask ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     PatternField* pPatternField = (PatternField*) GetWindow();
     if ( pPatternField )
@@ -6159,7 +6159,7 @@ void VCLXPatternField::getMasks( ::rtl::OUString& EditMask, ::rtl::OUString& 
Lit
 
 void VCLXPatternField::setString( const ::rtl::OUString& Str ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     PatternField* pPatternField = (PatternField*) GetWindow();
     if ( pPatternField )
@@ -6170,7 +6170,7 @@ void VCLXPatternField::setString( const ::rtl::OUString& Str ) 
throw(::com::sun:
 
 ::rtl::OUString VCLXPatternField::getString() throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::rtl::OUString aString;
     PatternField* pPatternField = (PatternField*) GetWindow();
@@ -6191,7 +6191,7 @@ sal_Bool VCLXPatternField::isStrictFormat() 
throw(::com::sun::star::uno::Runtime
 
 void VCLXPatternField::setProperty( const ::rtl::OUString& PropertyName, const 
::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( GetWindow() )
     {
@@ -6224,7 +6224,7 @@ void VCLXPatternField::setProperty( const ::rtl::OUString& PropertyName, 
const :
 
 ::com::sun::star::uno::Any VCLXPatternField::getProperty( const ::rtl::OUString& PropertyName ) 
throw(::com::sun::star::uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     ::com::sun::star::uno::Any aProp;
     if ( GetWindow() )
diff --git a/toolkit/source/awt/xsimpleanimation.cxx b/toolkit/source/awt/xsimpleanimation.cxx
index ad56e17..d8ccaf4 100644
--- a/toolkit/source/awt/xsimpleanimation.cxx
+++ b/toolkit/source/awt/xsimpleanimation.cxx
@@ -33,6 +33,8 @@
 #include "toolkit/helper/throbberimpl.hxx"
 #include <tools/debug.hxx>
 
+#include <vcl/svapp.hxx>
+
 //........................................................................
 namespace toolkit
 {
@@ -102,7 +104,7 @@ namespace toolkit
     void SAL_CALL XSimpleAnimation::setProperty( const ::rtl::OUString& PropertyName, const 
uno::Any& Value )
         throw( uno::RuntimeException )
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         if ( GetWindow() )
         {
@@ -138,7 +140,7 @@ namespace toolkit
     uno::Any SAL_CALL XSimpleAnimation::getProperty( const ::rtl::OUString& PropertyName )
         throw( uno::RuntimeException )
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         uno::Any aReturn;
 
diff --git a/toolkit/source/awt/xthrobber.cxx b/toolkit/source/awt/xthrobber.cxx
index 112fad3..435a22f 100644
--- a/toolkit/source/awt/xthrobber.cxx
+++ b/toolkit/source/awt/xthrobber.cxx
@@ -37,6 +37,7 @@
 #include <tools/debug.hxx>
 #include <vcl/fixed.hxx>
 #include <vcl/timer.hxx>
+#include <vcl/svapp.hxx>
 
 //........................................................................
 namespace toolkit
@@ -108,7 +109,7 @@ namespace toolkit
     void SAL_CALL XThrobber::setProperty( const ::rtl::OUString& PropertyName, const uno::Any& 
Value )
         throw( uno::RuntimeException )
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         if ( GetWindow() )
         {
@@ -120,7 +121,7 @@ namespace toolkit
     uno::Any SAL_CALL XThrobber::getProperty( const ::rtl::OUString& PropertyName )
         throw( uno::RuntimeException )
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
 
         uno::Any aReturn;
 
@@ -135,7 +136,7 @@ namespace toolkit
     void SAL_CALL XThrobber::InitImageList()
         throw( uno::RuntimeException )
     {
-        ::osl::SolarGuard aGuard( GetMutex() );
+        SolarMutexGuard aGuard;
         uno::Sequence< uno::Reference< graphic::XGraphic > > aImageList(12);
         sal_uInt16 nIconIdStart = RID_TK_ICON_THROBBER_START;
 
diff --git a/toolkit/source/layout/core/localized-string.cxx 
b/toolkit/source/layout/core/localized-string.cxx
index 992aa8f..6d3625e 100644
--- a/toolkit/source/layout/core/localized-string.cxx
+++ b/toolkit/source/layout/core/localized-string.cxx
@@ -30,6 +30,7 @@
 
 #include <toolkit/helper/property.hxx>
 #include <vcl/window.hxx>
+#include <vcl/svapp.hxx>
 
 namespace layoutimpl
 {
@@ -61,7 +62,7 @@ uno::Any LocalizedString::queryInterface( uno::Type const& rType )
 void LocalizedString::setText( OUString const& s )
     throw(uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( Window *w = GetWindow() )
         return w->SetText( s );
@@ -70,7 +71,7 @@ void LocalizedString::setText( OUString const& s )
 OUString LocalizedString::getText()
     throw(uno::RuntimeException)
 {
-    ::osl::SolarGuard aGuard( GetMutex() );
+    SolarMutexGuard aGuard;
 
     if ( Window *w = GetWindow() )
         return w->GetText();
-- 
1.7.2.2

From d9c089aabeb964011419574fef720cc6961f43f4 Mon Sep 17 00:00:00 2001
From: Norbert Thiebaud <nthiebaud@gmail.com>
Date: Sun, 31 Oct 2010 22:20:04 -0500
Subject: [PATCH] use SolarMutexGuard to take a guard on the solar mutex.

---
 forms/source/richtext/richtextcontrol.cxx |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/forms/source/richtext/richtextcontrol.cxx b/forms/source/richtext/richtextcontrol.cxx
index f277eac..a6fa85e 100644
--- a/forms/source/richtext/richtextcontrol.cxx
+++ b/forms/source/richtext/richtextcontrol.cxx
@@ -375,7 +375,7 @@ namespace frm
     void ORichTextPeer::dispose( ) throw(RuntimeException)
     {
         {
-            ::osl::SolarGuard aGuard( GetMutex() );
+            SolarMutexGuard aGuard;
             RichTextControl* pRichTextControl = static_cast< RichTextControl* >( GetWindow() );
 
             if ( pRichTextControl )
-- 
1.7.2.2


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.