diff -Nur chart2.orig/source/controller/accessibility/ChartElementFactory.cxx chart2/source/controller/accessibility/ChartElementFactory.cxx
--- chart2.orig/source/controller/accessibility/ChartElementFactory.cxx	2007-05-22 19:15:15.000000000 +0200
+++ chart2/source/controller/accessibility/ChartElementFactory.cxx	2007-08-01 00:19:24.000000000 +0200
@@ -146,7 +146,6 @@
             return new AccArea( pParent );
     }
     */
-    return NULL;
 }
 
 } // namespace chart
diff -Nur chart2.orig/source/controller/chartapiwrapper/GridWrapper.hxx chart2/source/controller/chartapiwrapper/GridWrapper.hxx
--- chart2.orig/source/controller/chartapiwrapper/GridWrapper.hxx	2007-05-22 19:18:22.000000000 +0200
+++ chart2/source/controller/chartapiwrapper/GridWrapper.hxx	2007-08-01 08:10:36.000000000 +0200
@@ -89,7 +89,7 @@
         Z_MAIN_GRID,
         X_SUB_GRID,
         Y_SUB_GRID,
-        Z_SUB_GRID,
+        Z_SUB_GRID
     };
 
     GridWrapper( tGridType eType, ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact );
diff -Nur chart2.orig/source/controller/chartapiwrapper/WrappedScaleProperty.cxx chart2/source/controller/chartapiwrapper/WrappedScaleProperty.cxx
--- chart2.orig/source/controller/chartapiwrapper/WrappedScaleProperty.cxx	2007-05-22 19:22:43.000000000 +0200
+++ chart2/source/controller/chartapiwrapper/WrappedScaleProperty.cxx	2007-07-31 23:35:04.000000000 +0200
@@ -40,6 +40,7 @@
 #include "macros.hxx"
 #include "Scaling.hxx"
 #include "CommonConverters.hxx"
+#include "AxisHelper.hxx"
 
 #ifndef _COM_SUN_STAR_CHART2_XAXIS_HPP_
 #include <com/sun/star/chart2/XAxis.hpp>
@@ -51,10 +52,6 @@
 #include <com/sun/star/chart2/ExplicitScaleData.hpp>
 #endif
 
-#ifndef _COM_SUN_STAR_LANG_XSERVICENAME_HPP_
-#include <com/sun/star/lang/XServiceName.hpp>
-#endif
-
 using namespace ::com::sun::star;
 using ::com::sun::star::uno::Any;
 using ::com::sun::star::uno::Reference;
@@ -266,12 +263,8 @@
         {
             if( rOuterValue >>= bBool )
             {
-                Reference< lang::XServiceName > xServiceName( aScaleData.Scaling, uno::UNO_QUERY );
-                bool bWasLogarithm =
-                    ( xServiceName.is() &&
-                      (xServiceName->getServiceName()).equals(
-                          C2U( "com.sun.star.chart2.LogarithmicScaling" )));
-
+                bool bWasLogarithm = AxisHelper::isLogarithmic( aScaleData.Scaling );
+                
                 // safe comparison between sal_Bool and bool
                 if( (!bBool) != (!bWasLogarithm) )
                 {
@@ -429,10 +422,7 @@
         }
         case SCALE_PROP_LOGARITHMIC:
         {
-            Reference< lang::XServiceName > xServiceName( aScaleData.Scaling, uno::UNO_QUERY );
-            aRet <<= static_cast< sal_Bool >( xServiceName.is() &&
-                  (xServiceName->getServiceName()).equals(
-                      C2U( "com.sun.star.chart2.LogarithmicScaling" )));
+            aRet <<= static_cast< sal_Bool >( AxisHelper::isLogarithmic(aScaleData.Scaling) );
             break;
         }
         default:
diff -Nur chart2.orig/source/controller/dialogs/DataBrowser.hxx chart2/source/controller/dialogs/DataBrowser.hxx
--- chart2.orig/source/controller/dialogs/DataBrowser.hxx	2007-05-22 19:27:42.000000000 +0200
+++ chart2/source/controller/dialogs/DataBrowser.hxx	2007-08-01 00:19:24.000000000 +0200
@@ -148,6 +148,8 @@
 	void RemoveRow();
 	void RemoveColumn();
 
+    using BrowseBox::RemoveColumn;
+
 	void SwapRow();
 	void SwapColumn();
 
diff -Nur chart2.orig/source/controller/inc/AccessibleBase.hxx chart2/source/controller/inc/AccessibleBase.hxx
--- chart2.orig/source/controller/inc/AccessibleBase.hxx	2007-05-22 19:51:41.000000000 +0200
+++ chart2/source/controller/inc/AccessibleBase.hxx	2007-08-01 00:19:24.000000000 +0200
@@ -334,6 +334,9 @@
         const ::com::sun::star::lang::EventObject& Source )
         throw (::com::sun::star::uno::RuntimeException);
 
+    using ::cppu::WeakComponentImplHelperBase::addEventListener;
+    using ::cppu::WeakComponentImplHelperBase::removeEventListener;
+
     // ________ XAccessibleEventBroadcaster ________
     virtual void SAL_CALL addEventListener(
         const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener )
diff -Nur chart2.orig/source/controller/itemsetwrapper/AxisItemConverter.cxx chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
--- chart2.orig/source/controller/itemsetwrapper/AxisItemConverter.cxx	2007-07-25 10:40:16.000000000 +0200
+++ chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx	2007-07-31 23:36:19.000000000 +0200
@@ -48,9 +48,6 @@
 #include "AxisHelper.hxx"
 #include "CommonConverters.hxx"
 
-#ifndef _COM_SUN_STAR_LANG_XSERVICENAME_HPP_
-#include <com/sun/star/lang/XServiceName.hpp>
-#endif
 #ifndef _COM_SUN_STAR_CHART2_XAXIS_HPP_
 #include <com/sun/star/chart2/XAxis.hpp>
 #endif
@@ -241,14 +238,7 @@
 
         case SCHATTR_AXIS_LOGARITHM:
         {
-            Reference< lang::XServiceName > xServiceName( aScale.Scaling, uno::UNO_QUERY );
-            BOOL bValue =
-                // if the following is true, we have logarithmic scaling,
-                // otherwise not (per definition)
-                ( xServiceName.is() &&
-                  (xServiceName->getServiceName()).equals(
-                      C2U( "com.sun.star.chart2.LogarithmicScaling" )) );
-
+            BOOL bValue = AxisHelper::isLogarithmic( aScale.Scaling );
             rOutItemSet.Put( SfxBoolItem( nWhichId, bValue ));
         }
         break;
@@ -437,13 +427,7 @@
 
         case SCHATTR_AXIS_LOGARITHM:
         {
-            Reference< lang::XServiceName > xServiceName( aScale.Scaling, uno::UNO_QUERY );
-            bool bWasLogarithm =
-                // if the following is true, we have logarithmic scaling,
-                // otherwise not (per definition)
-                ( xServiceName.is() &&
-                  (xServiceName->getServiceName()).equals(
-                      C2U( "com.sun.star.chart2.LogarithmicScaling" )));
+            bool bWasLogarithm = AxisHelper::isLogarithmic( aScale.Scaling );
 
             if( (static_cast< const SfxBoolItem & >(
                      rItemSet.Get( nWhichId )).GetValue() ))
diff -Nur chart2.orig/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx
--- chart2.orig/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx	2007-07-25 10:40:50.000000000 +0200
+++ chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx	2007-08-01 00:19:24.000000000 +0200
@@ -682,7 +682,6 @@
                     bChanged = true;
                 }
             }
-            break;
         }
         break;
 
diff -Nur chart2.orig/source/controller/main/ChartController.cxx chart2/source/controller/main/ChartController.cxx
--- chart2.orig/source/controller/main/ChartController.cxx	2007-07-25 10:42:25.000000000 +0200
+++ chart2/source/controller/main/ChartController.cxx	2007-08-01 00:19:25.000000000 +0200
@@ -693,8 +693,8 @@
 		//aGuard.reset();
 
 		m_bSuspended = bSuspend;
-		return sal_True;
 	}
+    return sal_True;
 
 
 	/*
@@ -703,7 +703,6 @@
 	else
 		getFrame()->addFrameActionListener( pImp );
 		*/
-	return sal_True;
 }
 
 
diff -Nur chart2.orig/source/inc/AxisHelper.hxx chart2/source/inc/AxisHelper.hxx
--- chart2.orig/source/inc/AxisHelper.hxx	2007-05-22 20:11:49.000000000 +0200
+++ chart2/source/inc/AxisHelper.hxx	2007-07-31 23:32:17.000000000 +0200
@@ -69,6 +69,9 @@
 
     static void removeExplicitScaling( ::com::sun::star::chart2::ScaleData& rScaleData );
 
+    static bool isLogarithmic( const ::com::sun::star::uno::Reference<
+                ::com::sun::star::chart2::XScaling >& xScaling );
+
     static ::com::sun::star::uno::Reference<
            ::com::sun::star::chart2::XAxis >
         createAxis( sal_Int32 nDimensionIndex, bool bMainAxis
diff -Nur chart2.orig/source/inc/PropertyHelper.hxx chart2/source/inc/PropertyHelper.hxx
--- chart2.orig/source/inc/PropertyHelper.hxx	2007-05-22 20:21:03.000000000 +0200
+++ chart2/source/inc/PropertyHelper.hxx	2007-07-31 14:56:44.000000000 +0200
@@ -56,75 +56,114 @@
 namespace chart
 {
 
-class PropertyHelper
+typedef int tPropertyValueMapKey;
+
+typedef ::std::map< tPropertyValueMapKey, ::com::sun::star::uno::Any >
+    tPropertyValueMap;
+
+namespace PropertyHelper
 {
-public:
-    static void copyProperties(
-        const ::com::sun::star::uno::Reference<
-            ::com::sun::star::beans::XPropertySet > & xSource,
-        const ::com::sun::star::uno::Reference<
-            ::com::sun::star::beans::XPropertySet > & xDestination
-        );
-
-    /** adds a line dash with a unique name to the gradient obtained by the given
-        factory.
-
-        @return The name used for storing this element in the table
-     */
-    static ::rtl::OUString addLineDashUniqueNameToTable(
-        const ::com::sun::star::uno::Any & rValue,
-        const ::com::sun::star::uno::Reference<
-            ::com::sun::star::lang::XMultiServiceFactory > & xFact,
-        const ::rtl::OUString & rPreferredName );
-
-    /** adds a gradient with a unique name to the gradient obtained by the given
-        factory.
-
-        @return The name used for storing this element in the table
-     */
-    static ::rtl::OUString addGradientUniqueNameToTable(
-        const ::com::sun::star::uno::Any & rValue,
-        const ::com::sun::star::uno::Reference<
-            ::com::sun::star::lang::XMultiServiceFactory > & xFact,
-        const ::rtl::OUString & rPreferredName );
-
-    /** adds a transparency gradient with a unique name to the gradient obtained
-        by the given factory.
-
-        @return The name used for storing this element in the table
-     */
-    static ::rtl::OUString addTransparencyGradientUniqueNameToTable(
-        const ::com::sun::star::uno::Any & rValue,
-        const ::com::sun::star::uno::Reference<
-            ::com::sun::star::lang::XMultiServiceFactory > & xFact,
-        const ::rtl::OUString & rPreferredName );
-
-    /** adds a hatch with a unique name to the gradient obtained by the given
-        factory.
-
-        @return The name used for storing this element in the table
-     */
-    static ::rtl::OUString addHatchUniqueNameToTable(
-        const ::com::sun::star::uno::Any & rValue,
-        const ::com::sun::star::uno::Reference<
-            ::com::sun::star::lang::XMultiServiceFactory > & xFact,
-        const ::rtl::OUString & rPreferredName );
-
-    /** adds a bitmap with a unique name to the gradient obtained by the given
-        factory.
-
-        @return The name used for storing this element in the table
-     */
-    static ::rtl::OUString addBitmapUniqueNameToTable(
-        const ::com::sun::star::uno::Any & rValue,
-        const ::com::sun::star::uno::Reference<
-            ::com::sun::star::lang::XMultiServiceFactory > & xFact,
-        const ::rtl::OUString & rPreferredName );
 
-private:
-    // not implemented
-	PropertyHelper();
-};
+void copyProperties(
+    const ::com::sun::star::uno::Reference<
+        ::com::sun::star::beans::XPropertySet > & xSource,
+    const ::com::sun::star::uno::Reference<
+        ::com::sun::star::beans::XPropertySet > & xDestination
+    );
+
+/** adds a line dash with a unique name to the gradient obtained by the given
+    factory.
+
+    @return The name used for storing this element in the table
+*/
+::rtl::OUString addLineDashUniqueNameToTable(
+    const ::com::sun::star::uno::Any & rValue,
+    const ::com::sun::star::uno::Reference<
+        ::com::sun::star::lang::XMultiServiceFactory > & xFact,
+    const ::rtl::OUString & rPreferredName );
+
+/** adds a gradient with a unique name to the gradient obtained by the given
+    factory.
+
+    @return The name used for storing this element in the table
+*/
+::rtl::OUString addGradientUniqueNameToTable(
+    const ::com::sun::star::uno::Any & rValue,
+    const ::com::sun::star::uno::Reference<
+        ::com::sun::star::lang::XMultiServiceFactory > & xFact,
+    const ::rtl::OUString & rPreferredName );
+
+/** adds a transparency gradient with a unique name to the gradient obtained
+    by the given factory.
+
+    @return The name used for storing this element in the table
+*/
+::rtl::OUString addTransparencyGradientUniqueNameToTable(
+    const ::com::sun::star::uno::Any & rValue,
+    const ::com::sun::star::uno::Reference<
+        ::com::sun::star::lang::XMultiServiceFactory > & xFact,
+    const ::rtl::OUString & rPreferredName );
+
+/** adds a hatch with a unique name to the gradient obtained by the given
+    factory.
+
+    @return The name used for storing this element in the table
+*/
+::rtl::OUString addHatchUniqueNameToTable(
+    const ::com::sun::star::uno::Any & rValue,
+    const ::com::sun::star::uno::Reference<
+        ::com::sun::star::lang::XMultiServiceFactory > & xFact,
+    const ::rtl::OUString & rPreferredName );
+
+/** adds a bitmap with a unique name to the gradient obtained by the given
+    factory.
+
+    @return The name used for storing this element in the table
+*/
+::rtl::OUString addBitmapUniqueNameToTable(
+    const ::com::sun::star::uno::Any & rValue,
+    const ::com::sun::star::uno::Reference<
+        ::com::sun::star::lang::XMultiServiceFactory > & xFact,
+    const ::rtl::OUString & rPreferredName );
+
+// --------------------------------------------------------------------------------
+
+/** Set a property to a certain value in the given map.  This works for
+    properties that are already set, and those which are not yet in the map.
+
+    @param any is the value encapsulated in the variant type Any
+ */
+void setPropertyValueAny( tPropertyValueMap & rOutMap, tPropertyValueMapKey key, const ::com::sun::star::uno::Any & rAny );
+
+/** Set a property to a certain value in the given map.  This works for
+    properties that are already set, and those which are not yet in the map.
+
+    @param value is the value of type Value that will be put into a variant type
+        Any before set in the property map.
+ */
+template< typename Value >
+    void setPropertyValue( tPropertyValueMap & rOutMap, tPropertyValueMapKey key, const Value & value )
+{
+    setPropertyValueAny( rOutMap, key, ::com::sun::star::uno::makeAny( value ));
+}
+
+/** Calls setPropertyValue() but asserts that the given property hasn't been set
+    before.
+ */
+template< typename Value >
+    void setPropertyValueDefault( tPropertyValueMap & rOutMap, tPropertyValueMapKey key, const Value & value )
+{
+    OSL_ENSURE( rOutMap.end() == rOutMap.find( key ), "Default already exists for property" );
+    setPropertyValue< Value >( rOutMap, key, value );
+}
+
+void setPropertyValueDefaultAny( tPropertyValueMap & rOutMap, tPropertyValueMapKey key, const ::com::sun::star::uno::Any & rAny );
+void setEmptyPropertyValueDefault( tPropertyValueMap & rOutMap, tPropertyValueMapKey key );
+
+
+} // namespace PropertyHelper
+
+// ================================================================================
 
 struct PropertyNameLess
 {
@@ -162,9 +201,6 @@
     ::rtl::OUString m_aName;
 };
 
-typedef ::std::map< sal_Int32, ::com::sun::star::uno::Any >
-    tPropertyValueMap;
-
 } //  namespace chart
 
 // CHART_PROPERTYHELPER_HXX
diff -Nur chart2.orig/source/model/inc/BaseCoordinateSystem.hxx chart2/source/model/inc/BaseCoordinateSystem.hxx
--- chart2.orig/source/model/inc/BaseCoordinateSystem.hxx	2007-05-22 20:28:00.000000000 +0200
+++ chart2/source/model/inc/BaseCoordinateSystem.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -192,6 +192,7 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
diff -Nur chart2.orig/source/model/inc/DataSeries.hxx chart2/source/model/inc/DataSeries.hxx
--- chart2.orig/source/model/inc/DataSeries.hxx	2007-05-22 20:29:14.000000000 +0200
+++ chart2/source/model/inc/DataSeries.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -177,6 +177,9 @@
         getPropertySetInfo()
         throw (::com::sun::star::uno::RuntimeException);
 
+    /// make original interface function visible again
+    using ::com::sun::star::beans::XFastPropertySet::getFastPropertyValue;
+
     // ____ XRegressionCurveContainer ____
     // ___________________________________
     /// @see ::com::sun::star::chart2::XRegressionCurveContainer
@@ -224,6 +227,7 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
diff -Nur chart2.orig/source/model/inc/Diagram.hxx chart2/source/model/inc/Diagram.hxx
--- chart2.orig/source/model/inc/Diagram.hxx	2007-05-22 20:29:39.000000000 +0200
+++ chart2/source/model/inc/Diagram.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -220,6 +220,7 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
diff -Nur chart2.orig/source/model/inc/StockBar.hxx chart2/source/model/inc/StockBar.hxx
--- chart2.orig/source/model/inc/StockBar.hxx	2007-05-22 20:30:26.000000000 +0200
+++ chart2/source/model/inc/StockBar.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -130,6 +130,7 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
diff -Nur chart2.orig/source/model/main/Axis.cxx chart2/source/model/main/Axis.cxx
--- chart2.orig/source/model/main/Axis.cxx	2007-07-25 10:48:41.000000000 +0200
+++ chart2/source/model/main/Axis.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -215,50 +215,24 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AXIS_SHOW ));
-    rOutMap[ PROP_AXIS_SHOW ] =
-        uno::makeAny( sal_True );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AXIS_POSITION ));
-    rOutMap[ PROP_AXIS_POSITION ] =
-        uno::makeAny( chart2::AxisPosition::MAIN );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AXIS_DISPLAY_LABELS ));
-    rOutMap[ PROP_AXIS_DISPLAY_LABELS ] =
-        uno::makeAny( sal_Bool( sal_True ) );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AXIS_TEXT_ROTATION ));
-    rOutMap[ PROP_AXIS_TEXT_ROTATION ] =
-        uno::makeAny( double( 0.0 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AXIS_TEXT_BREAK ));
-    rOutMap[ PROP_AXIS_TEXT_BREAK ] =
-        uno::makeAny( sal_Bool( sal_False ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AXIS_TEXT_OVERLAP ));
-    rOutMap[ PROP_AXIS_TEXT_OVERLAP ] =
-        uno::makeAny( sal_Bool( sal_False ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AXIS_TEXT_STACKED ));
-    rOutMap[ PROP_AXIS_TEXT_STACKED ] =
-        uno::makeAny( sal_Bool( sal_False ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AXIS_TEXT_ARRANGE_ORDER ));
-    rOutMap[ PROP_AXIS_TEXT_ARRANGE_ORDER ] =
-        uno::makeAny( ::com::sun::star::chart::ChartAxisArrangeOrderType_AUTO );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_SHOW, true );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_POSITION, chart2::AxisPosition::MAIN );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_DISPLAY_LABELS, true );
+    ::chart::PropertyHelper::setPropertyValueDefault< double >( rOutMap, PROP_AXIS_TEXT_ROTATION, 0.0 );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_TEXT_BREAK, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_TEXT_OVERLAP, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_TEXT_STACKED, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_TEXT_ARRANGE_ORDER, ::com::sun::star::chart::ChartAxisArrangeOrderType_AUTO );
 
     float fDefaultCharHeight = 8.0;
-    rOutMap[ ::chart::CharacterProperties::PROP_CHAR_CHAR_HEIGHT ] =
-        uno::makeAny( fDefaultCharHeight );
-    rOutMap[ ::chart::CharacterProperties::PROP_CHAR_ASIAN_CHAR_HEIGHT ] =
-        uno::makeAny( fDefaultCharHeight );
-    rOutMap[ ::chart::CharacterProperties::PROP_CHAR_COMPLEX_CHAR_HEIGHT ] =
-        uno::makeAny( fDefaultCharHeight );
+    ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_CHAR_HEIGHT, fDefaultCharHeight );
+    ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_ASIAN_CHAR_HEIGHT, fDefaultCharHeight );
+    ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_COMPLEX_CHAR_HEIGHT, fDefaultCharHeight );
 
     // for Testing only!
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AXIS_MAJOR_TICKMARKS ));
-    rOutMap[ PROP_AXIS_MAJOR_TICKMARKS ] =
-        uno::makeAny( sal_Int32( 2 /* CHAXIS_MARK_OUTER */ ) );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_AXIS_MAJOR_TICKMARKS, 2 /* CHAXIS_MARK_OUTER */ );
     // for Testing only!
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AXIS_MINOR_TICKMARKS ));
-    rOutMap[ PROP_AXIS_MINOR_TICKMARKS ] =
-        uno::makeAny( sal_Int32( 0 /* CHAXIS_MARK_NONE */ ) );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_AXIS_MINOR_TICKMARKS, 0 /* CHAXIS_MARK_NONE */ );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/main/Axis.hxx chart2/source/model/main/Axis.hxx
--- chart2.orig/source/model/main/Axis.hxx	2007-05-22 20:31:08.000000000 +0200
+++ chart2/source/model/main/Axis.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -186,6 +186,7 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
diff -Nur chart2.orig/source/model/main/BaseCoordinateSystem.cxx chart2/source/model/main/BaseCoordinateSystem.cxx
--- chart2.orig/source/model/main/BaseCoordinateSystem.cxx	2007-07-25 10:48:55.000000000 +0200
+++ chart2/source/model/main/BaseCoordinateSystem.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -86,8 +86,7 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_COORDINATESYSTEM_SWAPXANDYAXIS ));
-    rOutMap[ PROP_COORDINATESYSTEM_SWAPXANDYAXIS ] = uno::makeAny( false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_COORDINATESYSTEM_SWAPXANDYAXIS, false );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/main/ChartModel.cxx chart2/source/model/main/ChartModel.cxx
--- chart2.orig/source/model/main/ChartModel.cxx	2007-07-25 10:49:07.000000000 +0200
+++ chart2/source/model/main/ChartModel.cxx	2007-08-01 00:19:25.000000000 +0200
@@ -1249,19 +1249,14 @@
         {
             case SERVICE_DASH_TABLE:
                 return m_pImplChartModel->GetDashTable();
-                break;
             case SERVICE_GARDIENT_TABLE:
                 return m_pImplChartModel->GetGradientTable();
-                break;
             case SERVICE_HATCH_TABLE:
                 return m_pImplChartModel->GetHatchTable();
-                break;
             case SERVICE_BITMAP_TABLE:
                 return m_pImplChartModel->GetBitmapTable();
-                break;
             case SERVICE_TRANSP_GRADIENT_TABLE:
                 return m_pImplChartModel->GetTransparencyGradientTable();
-                break;
             case SERVICE_MARKER_TABLE:
                 // not supported
                 return 0;
diff -Nur chart2.orig/source/model/main/DataPoint.hxx chart2/source/model/main/DataPoint.hxx
--- chart2.orig/source/model/main/DataPoint.hxx	2007-05-22 20:33:34.000000000 +0200
+++ chart2/source/model/main/DataPoint.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -147,6 +147,7 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
diff -Nur chart2.orig/source/model/main/DataPointProperties.cxx chart2/source/model/main/DataPointProperties.cxx
--- chart2.orig/source/model/main/DataPointProperties.cxx	2007-07-03 15:42:30.000000000 +0200
+++ chart2/source/model/main/DataPointProperties.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -369,98 +369,42 @@
 void DataPointProperties::AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_COLOR ));
-    rOutMap[ PROP_DATAPOINT_COLOR ] =
-        uno::makeAny( sal_Int32( 0x0099ccff ));  // blue 8
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_TRANSPARENCY ));
-    rOutMap[ PROP_DATAPOINT_TRANSPARENCY ] =
-        uno::makeAny( sal_Int16( 0 ) );
+    PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DATAPOINT_COLOR, 0x0099ccff ); // blue 8
+    PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_DATAPOINT_TRANSPARENCY, 0 );
 
     //fill
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_FILL_STYLE ));
-    rOutMap[ PROP_DATAPOINT_FILL_STYLE ] =
-        uno::makeAny( drawing::FillStyle_SOLID );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_TRANSPARENCY_GRADIENT_NAME ));
-    rOutMap[ PROP_DATAPOINT_TRANSPARENCY_GRADIENT_NAME ] =
-        uno::Any();//need this empty default value otherwise get a costly exception in DataSeries::GetDefaultValue
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_GRADIENT_NAME ));
-    rOutMap[ PROP_DATAPOINT_GRADIENT_NAME ] =
-        uno::Any();//need this empty default value otherwise get a costly exception in DataSeries::GetDefaultValue
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_GRADIENT_STEPCOUNT ));
-    rOutMap[ PROP_DATAPOINT_GRADIENT_STEPCOUNT ] =
-        uno::makeAny(sal_Int16(0));
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_HATCH_NAME ));
-    rOutMap[ PROP_DATAPOINT_HATCH_NAME ] =
-        uno::Any();//need this empty default value otherwise get a costly exception in DataSeries::GetDefaultValue
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_FILL_BITMAP_NAME ));
-    rOutMap[ PROP_DATAPOINT_FILL_BITMAP_NAME ] =
-        uno::Any();//need this empty default value otherwise get a costly exception in DataSeries::GetDefaultValue
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_FILL_BACKGROUND ));
-    rOutMap[ PROP_DATAPOINT_FILL_BACKGROUND ] =
-        uno::makeAny( false );
+    PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_FILL_STYLE, drawing::FillStyle_SOLID );
+    PropertyHelper::setEmptyPropertyValueDefault( rOutMap, PROP_DATAPOINT_TRANSPARENCY_GRADIENT_NAME );
+    PropertyHelper::setEmptyPropertyValueDefault( rOutMap, PROP_DATAPOINT_GRADIENT_NAME );
+    PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_DATAPOINT_GRADIENT_STEPCOUNT, 0 );
+    PropertyHelper::setEmptyPropertyValueDefault( rOutMap, PROP_DATAPOINT_HATCH_NAME );
+    PropertyHelper::setEmptyPropertyValueDefault( rOutMap, PROP_DATAPOINT_FILL_BITMAP_NAME );
+    PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_FILL_BACKGROUND, false );
 
     //border
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_BORDER_COLOR ));
-    rOutMap[ PROP_DATAPOINT_BORDER_COLOR ] =
-        uno::makeAny( sal_Int32( 0x00000000 ));  // black
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_BORDER_STYLE ));
-    rOutMap[ PROP_DATAPOINT_BORDER_STYLE ] =
-        uno::makeAny( drawing::LineStyle_SOLID );
-//         uno::makeAny( drawing::LineStyle_NONE );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_BORDER_WIDTH ));
-    rOutMap[ PROP_DATAPOINT_BORDER_WIDTH ] =
-        uno::makeAny( sal_Int32( 0 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_BORDER_DASH_NAME ));
-    rOutMap[ PROP_DATAPOINT_BORDER_DASH_NAME ] =
-        uno::Any();//need this empty default value otherwise get a costly exception in DataSeries::GetDefaultValue
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_BORDER_TRANSPARENCY ));
-    rOutMap[ PROP_DATAPOINT_BORDER_TRANSPARENCY ] =
-        uno::makeAny( sal_Int16( 0 ) );
+    PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DATAPOINT_BORDER_COLOR, 0x000000 ); // black
+    PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_BORDER_STYLE, drawing::LineStyle_SOLID ); // drawing::LineStyle_NONE
+    PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DATAPOINT_BORDER_WIDTH, 0 );
+    PropertyHelper::setEmptyPropertyValueDefault( rOutMap, PROP_DATAPOINT_BORDER_DASH_NAME );
+    PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_DATAPOINT_BORDER_TRANSPARENCY, 0 );
 
     //line
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( LineProperties::PROP_LINE_STYLE ));
-    rOutMap[ LineProperties::PROP_LINE_STYLE ] =
-        uno::makeAny( drawing::LineStyle_SOLID );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( LineProperties::PROP_LINE_WIDTH ));
-    rOutMap[ LineProperties::PROP_LINE_WIDTH ] =
-        uno::makeAny( sal_Int32( 0 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( LineProperties::PROP_LINE_DASH ));
-    rOutMap[ LineProperties::PROP_LINE_DASH ] =
-        uno::Any( drawing::LineDash() );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( LineProperties::PROP_LINE_DASH_NAME ));
-    rOutMap[ LineProperties::PROP_LINE_DASH_NAME ] =
-        uno::Any();//need this empty default value otherwise get a costly exception in DataSeries::GetDefaultValue
-
-    //fill
-    //bitmap
-    uno::Any aSalInt16Zero = uno::makeAny( sal_Int16( 0 ));
-    uno::Any aSalInt32SizeDefault = uno::makeAny( sal_Int32( 0 ));
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_OFFSETX ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_OFFSETX ] = aSalInt16Zero;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_OFFSETY ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_OFFSETY ] = aSalInt16Zero;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETX ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETX ] = aSalInt16Zero;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETY ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETY ] = aSalInt16Zero;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_RECTANGLEPOINT ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_RECTANGLEPOINT ] =
-        uno::makeAny( drawing::RectanglePoint_MIDDLE_MIDDLE );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_LOGICALSIZE ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_LOGICALSIZE ] =
-        uno::makeAny( true );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_SIZEX ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_SIZEX ] = aSalInt32SizeDefault;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_SIZEY ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_SIZEY ] = aSalInt32SizeDefault;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_MODE ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_MODE ] =
-        uno::makeAny( drawing::BitmapMode_REPEAT );
+    PropertyHelper::setPropertyValueDefault( rOutMap, LineProperties::PROP_LINE_STYLE, drawing::LineStyle_SOLID );
+    PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, LineProperties::PROP_LINE_WIDTH, 0 );
+    PropertyHelper::setPropertyValueDefault( rOutMap, LineProperties::PROP_LINE_DASH, drawing::LineDash());
+    PropertyHelper::setEmptyPropertyValueDefault( rOutMap, LineProperties::PROP_LINE_DASH_NAME );
+
+    //fill bitmap
+    PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_OFFSETX, 0 );
+    PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_OFFSETY, 0 );
+    PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETX, 0 );
+    PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETY, 0 );
+    PropertyHelper::setPropertyValueDefault( rOutMap, FillProperties::PROP_FILL_BITMAP_RECTANGLEPOINT, drawing::RectanglePoint_MIDDLE_MIDDLE );
+    PropertyHelper::setPropertyValueDefault( rOutMap, FillProperties::PROP_FILL_BITMAP_LOGICALSIZE, true );
+
+    PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, FillProperties::PROP_FILL_BITMAP_SIZEX, 0 );
+    PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, FillProperties::PROP_FILL_BITMAP_SIZEY, 0 );
+    PropertyHelper::setPropertyValueDefault( rOutMap, FillProperties::PROP_FILL_BITMAP_MODE, drawing::BitmapMode_REPEAT );
 
     //others
     chart2::Symbol aSymbProp;
@@ -469,42 +413,25 @@
     aSymbProp.Size = awt::Size( 250, 250 ); // ca. 7pt x 7pt (7pt=246.94)
     aSymbProp.BorderColor = 0x000000;       // Black
     aSymbProp.FillColor = 0xee4000;         // OrangeRed2
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_SYMBOL_PROP ));
-    rOutMap[ PROP_DATAPOINT_SYMBOL_PROP ] =
-        uno::makeAny( aSymbProp );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_OFFSET ));
-    rOutMap[ PROP_DATAPOINT_OFFSET ] =
-        uno::makeAny( double( 0.0 ) );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_GEOMETRY3D ));
-    rOutMap[ PROP_DATAPOINT_GEOMETRY3D ] =
-        uno::makeAny( chart2::DataPointGeometry3D::CUBOID );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_LABEL ));
-    rOutMap[ PROP_DATAPOINT_LABEL ] =
-        uno::makeAny( chart2::DataPointLabel(
-                          sal_False, // ShowNumber
-                          sal_False, // ShowNumberInPercent
-                          sal_False, // ShowCategoryName
-                          sal_False // ShowLegendSymbol
-                          ));
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_NUMBER_FORMAT ));
-    rOutMap[ PROP_DATAPOINT_NUMBER_FORMAT ] =
-        uno::makeAny( sal_Int32(0) ); //todo maybe choose a different one here -> should be dynamically that of the attached axis
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_ERROR_BAR_X ));
-    rOutMap[ PROP_DATAPOINT_ERROR_BAR_X ] =
-        uno::makeAny( uno::Reference< beans::XPropertySet >(0) );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_ERROR_BAR_Y ));
-    rOutMap[ PROP_DATAPOINT_ERROR_BAR_Y ] =
-        uno::makeAny( uno::Reference< beans::XPropertySet >(0) );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATAPOINT_PERCENT_DIAGONAL ));
-    rOutMap[ PROP_DATAPOINT_PERCENT_DIAGONAL ] =
-        uno::makeAny( static_cast< sal_Int16 >(0) );
+    PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_SYMBOL_PROP, aSymbProp );
+
+    PropertyHelper::setPropertyValueDefault< double >( rOutMap, PROP_DATAPOINT_OFFSET, 0.0 );
+    PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_GEOMETRY3D, chart2::DataPointGeometry3D::CUBOID );
+
+    PropertyHelper::setPropertyValueDefault(
+        rOutMap, PROP_DATAPOINT_LABEL,
+        chart2::DataPointLabel(
+            sal_False, // ShowNumber
+            sal_False, // ShowNumberInPercent
+            sal_False, // ShowCategoryName
+            sal_False  // ShowLegendSymbol
+            ));
+
+    //@todo maybe choose a different one here -> should be dynamically that of the attached axis
+    PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DATAPOINT_NUMBER_FORMAT, 0 );
+    PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_ERROR_BAR_X, uno::Reference< beans::XPropertySet >());
+    PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_ERROR_BAR_Y, uno::Reference< beans::XPropertySet >());
+    PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_DATAPOINT_PERCENT_DIAGONAL, 0 );
 }
 
 } //  namespace chart
diff -Nur chart2.orig/source/model/main/DataSeriesProperties.cxx chart2/source/model/main/DataSeriesProperties.cxx
--- chart2.orig/source/model/main/DataSeriesProperties.cxx	2007-05-22 20:34:51.000000000 +0200
+++ chart2/source/model/main/DataSeriesProperties.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -100,17 +100,9 @@
 void DataSeriesProperties::AddDefaultsToMap(
     tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATASERIES_STACKING_DIRECTION ));
-    rOutMap[ PROP_DATASERIES_STACKING_DIRECTION ] =
-        uno::makeAny( chart2::StackingDirection_NO_STACKING );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATASERIES_VARY_COLORS_BY_POINT ));
-    rOutMap[ PROP_DATASERIES_VARY_COLORS_BY_POINT ] =
-        uno::makeAny( false );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DATASERIES_ATTACHED_AXIS_INDEX ));
-    rOutMap[ PROP_DATASERIES_ATTACHED_AXIS_INDEX ] =
-        uno::makeAny( sal_Int32(0) );
+    PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATASERIES_STACKING_DIRECTION, chart2::StackingDirection_NO_STACKING );
+    PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATASERIES_VARY_COLORS_BY_POINT, false );
+    PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DATASERIES_ATTACHED_AXIS_INDEX, 0 );
 
     // PROP_DATASERIES_ATTRIBUTED_DATA_POINTS has no default
 
diff -Nur chart2.orig/source/model/main/Diagram.cxx chart2/source/model/main/Diagram.cxx
--- chart2.orig/source/model/main/Diagram.cxx	2007-07-25 10:49:57.000000000 +0200
+++ chart2/source/model/main/Diagram.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -134,17 +134,9 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DIAGRAM_SORT_BY_X_VALUES ));
-    rOutMap[ PROP_DIAGRAM_SORT_BY_X_VALUES ] =
-        uno::makeAny( sal_False );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DIAGRAM_CONNECT_BARS ));
-    rOutMap[ PROP_DIAGRAM_CONNECT_BARS ] =
-        uno::makeAny( false );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_DIAGRMA_RIGHT_ANGLED_AXES ));
-    rOutMap[ PROP_DIAGRMA_RIGHT_ANGLED_AXES ] =
-        uno::makeAny( false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_SORT_BY_X_VALUES, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_CONNECT_BARS, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRMA_RIGHT_ANGLED_AXES, false );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/main/FormattedString.hxx chart2/source/model/main/FormattedString.hxx
--- chart2.orig/source/model/main/FormattedString.hxx	2007-05-22 20:36:54.000000000 +0200
+++ chart2/source/model/main/FormattedString.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -152,6 +152,7 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
diff -Nur chart2.orig/source/model/main/GridProperties.cxx chart2/source/model/main/GridProperties.cxx
--- chart2.orig/source/model/main/GridProperties.cxx	2007-07-25 10:50:24.000000000 +0200
+++ chart2/source/model/main/GridProperties.cxx	2007-08-01 00:19:25.000000000 +0200
@@ -93,12 +93,11 @@
 {
     ::chart::LineProperties::AddDefaultsToMap( rOutMap );
 
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_GRID_SHOW ));
-    rOutMap[ PROP_GRID_SHOW ] = uno::makeAny( sal_False );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_GRID_SHOW, false );
 
     // override other defaults
-    rOutMap[ ::chart::LineProperties::PROP_LINE_COLOR ] =
-        uno::makeAny( static_cast< sal_Int32 >( 0xb3b3b3 ) );  // gray30
+    ::chart::PropertyHelper::setPropertyValue< sal_Int32 >(
+        rOutMap, ::chart::LineProperties::PROP_LINE_COLOR, 0xb3b3b3 );  // gray30
 }
 
 const Sequence< Property > & lcl_getPropertySequence()
@@ -209,11 +208,6 @@
     // \--
 }
 
-::osl::Mutex & GridProperties::GetMutex()
-{
-    return m_aMutex;
-}
-
 // ____ XCloneable ____
 uno::Reference< util::XCloneable > SAL_CALL GridProperties::createClone()
     throw (uno::RuntimeException)
diff -Nur chart2.orig/source/model/main/GridProperties.hxx chart2/source/model/main/GridProperties.hxx
--- chart2.orig/source/model/main/GridProperties.hxx	2007-05-22 20:37:44.000000000 +0200
+++ chart2/source/model/main/GridProperties.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -140,11 +140,10 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
-    ::osl::Mutex & GetMutex();
-
 private:
     ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > m_xModifyEventForwarder;
 };
diff -Nur chart2.orig/source/model/main/Legend.cxx chart2/source/model/main/Legend.cxx
--- chart2.orig/source/model/main/Legend.cxx	2007-07-25 10:51:04.000000000 +0200
+++ chart2/source/model/main/Legend.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -132,24 +132,14 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LEGEND_ANCHOR_POSITION ));
-    rOutMap[ PROP_LEGEND_ANCHOR_POSITION ] =
-        uno::makeAny( chart2::LegendPosition_LINE_END );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LEGEND_PREFERRED_EXPANSION ));
-    rOutMap[ PROP_LEGEND_PREFERRED_EXPANSION ] =
-        uno::makeAny( chart2::LegendExpansion_HIGH );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LEGEND_SHOW ));
-    rOutMap[ PROP_LEGEND_SHOW ] =
-        uno::makeAny( sal_True );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LEGEND_ANCHOR_POSITION, chart2::LegendPosition_LINE_END );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LEGEND_PREFERRED_EXPANSION, chart2::LegendExpansion_HIGH );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LEGEND_SHOW, true );
 
     float fDefaultCharHeight = 8.0;
-    rOutMap[ ::chart::CharacterProperties::PROP_CHAR_CHAR_HEIGHT ] =
-        uno::makeAny( fDefaultCharHeight );
-    rOutMap[ ::chart::CharacterProperties::PROP_CHAR_ASIAN_CHAR_HEIGHT ] =
-        uno::makeAny( fDefaultCharHeight );
-    rOutMap[ ::chart::CharacterProperties::PROP_CHAR_COMPLEX_CHAR_HEIGHT ] =
-        uno::makeAny( fDefaultCharHeight );
+    ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_CHAR_HEIGHT, fDefaultCharHeight );
+    ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_ASIAN_CHAR_HEIGHT, fDefaultCharHeight );
+    ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_COMPLEX_CHAR_HEIGHT, fDefaultCharHeight );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/main/Legend.hxx chart2/source/model/main/Legend.hxx
--- chart2.orig/source/model/main/Legend.hxx	2007-05-22 20:39:39.000000000 +0200
+++ chart2/source/model/main/Legend.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -165,6 +165,7 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
diff -Nur chart2.orig/source/model/main/PageBackground.cxx chart2/source/model/main/PageBackground.cxx
--- chart2.orig/source/model/main/PageBackground.cxx	2007-07-25 10:51:18.000000000 +0200
+++ chart2/source/model/main/PageBackground.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -72,12 +72,9 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    rOutMap[ ::chart::FillProperties::PROP_FILL_COLOR ] =
-        uno::makeAny( sal_Int32( 0xffffff ));
-
     // override other defaults
-    rOutMap[ ::chart::LineProperties::PROP_LINE_STYLE ] =
-        uno::makeAny( drawing::LineStyle_NONE );
+    ::chart::PropertyHelper::setPropertyValue< sal_Int32 >( rOutMap, ::chart::FillProperties::PROP_FILL_COLOR, 0xffffff );
+    ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::LineProperties::PROP_LINE_STYLE, drawing::LineStyle_NONE );
 }
 
 const uno::Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/main/PageBackground.hxx chart2/source/model/main/PageBackground.hxx
--- chart2.orig/source/model/main/PageBackground.hxx	2007-05-22 20:40:02.000000000 +0200
+++ chart2/source/model/main/PageBackground.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -137,6 +137,7 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
diff -Nur chart2.orig/source/model/main/StockBar.cxx chart2/source/model/main/StockBar.cxx
--- chart2.orig/source/model/main/StockBar.cxx	2007-07-25 10:51:31.000000000 +0200
+++ chart2/source/model/main/StockBar.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -103,8 +103,7 @@
     ::chart::tPropertyValueMap & rOutMap )
 {
     // override other defaults
-    rOutMap[ ::chart::FillProperties::PROP_FILL_COLOR ] =
-        uno::makeAny( sal_Int32( 0xffffff) ); // white
+    ::chart::PropertyHelper::setPropertyValue< sal_Int32 >( rOutMap, ::chart::FillProperties::PROP_FILL_COLOR, 0xffffff ); // white
 }
 
 ::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
diff -Nur chart2.orig/source/model/main/Title.cxx chart2/source/model/main/Title.cxx
--- chart2.orig/source/model/main/Title.cxx	2007-07-25 10:51:45.000000000 +0200
+++ chart2/source/model/main/Title.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -189,41 +189,23 @@
     ::chart::tPropertyValueMap & rOutMap )
 {
     // ParagraphProperties
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_TITLE_PARA_ADJUST ));
-    rOutMap[ PROP_TITLE_PARA_ADJUST ] =
-        uno::makeAny( ::com::sun::star::style::ParagraphAdjust_CENTER );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_TITLE_PARA_ADJUST,
+                                                      ::com::sun::star::style::ParagraphAdjust_CENTER );
     // PROP_TITLE_PARA_LAST_LINE_ADJUST
 
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_TITLE_PARA_LEFT_MARGIN ));
-    rOutMap[ PROP_TITLE_PARA_LEFT_MARGIN ] =
-        uno::makeAny( sal_Int32( 0 ));
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_TITLE_PARA_RIGHT_MARGIN ));
-    rOutMap[ PROP_TITLE_PARA_RIGHT_MARGIN ] =
-        uno::makeAny( sal_Int32( 0 ));
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_TITLE_PARA_TOP_MARGIN ));
-    rOutMap[ PROP_TITLE_PARA_TOP_MARGIN ] =
-        uno::makeAny( sal_Int32( 0 ));
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_TITLE_PARA_BOTTOM_MARGIN ));
-    rOutMap[ PROP_TITLE_PARA_BOTTOM_MARGIN ] =
-        uno::makeAny( sal_Int32( 0 ));
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_TITLE_PARA_IS_HYPHENATION ));
-    rOutMap[ PROP_TITLE_PARA_IS_HYPHENATION ] =
-        uno::makeAny( sal_True );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_TITLE_PARA_LEFT_MARGIN, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_TITLE_PARA_RIGHT_MARGIN, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_TITLE_PARA_TOP_MARGIN, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_TITLE_PARA_BOTTOM_MARGIN, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_TITLE_PARA_IS_HYPHENATION, true );
 
     // own properties
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_TITLE_TEXT_ROTATION ));
-    rOutMap[ PROP_TITLE_TEXT_ROTATION ] =
-        uno::makeAny( double( 0.0 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_TITLE_TEXT_STACKED ));
-    rOutMap[ PROP_TITLE_TEXT_STACKED ] =
-        uno::makeAny( sal_Bool( sal_False ) );
+    ::chart::PropertyHelper::setPropertyValueDefault< double >( rOutMap, PROP_TITLE_TEXT_ROTATION, 0.0 );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_TITLE_TEXT_STACKED, false );
 
     // override other defaults
-    rOutMap[ ::chart::FillProperties::PROP_FILL_STYLE ] =
-        uno::makeAny( drawing::FillStyle_NONE );
-    rOutMap[ ::chart::LineProperties::PROP_LINE_STYLE ] =
-        uno::makeAny( drawing::LineStyle_NONE );
+    ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::FillProperties::PROP_FILL_STYLE, drawing::FillStyle_NONE );
+    ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::LineProperties::PROP_LINE_STYLE, drawing::LineStyle_NONE );
 }
 
 const uno::Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/main/Title.hxx chart2/source/model/main/Title.hxx
--- chart2.orig/source/model/main/Title.hxx	2007-05-22 20:42:06.000000000 +0200
+++ chart2/source/model/main/Title.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -155,6 +155,7 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
diff -Nur chart2.orig/source/model/main/Wall.cxx chart2/source/model/main/Wall.cxx
--- chart2.orig/source/model/main/Wall.cxx	2007-07-25 10:51:58.000000000 +0200
+++ chart2/source/model/main/Wall.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -94,8 +94,7 @@
     ::chart::tPropertyValueMap & rOutMap )
 {
     // override other defaults
-    rOutMap[ ::chart::LineProperties::PROP_LINE_STYLE ] =
-        uno::makeAny( drawing::LineStyle_NONE );
+    ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::LineProperties::PROP_LINE_STYLE, drawing::LineStyle_NONE );
 }
 
 const uno::Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/main/Wall.hxx chart2/source/model/main/Wall.hxx
--- chart2.orig/source/model/main/Wall.hxx	2007-05-22 20:42:36.000000000 +0200
+++ chart2/source/model/main/Wall.hxx	2007-08-01 00:19:25.000000000 +0200
@@ -139,6 +139,7 @@
 
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     void fireModifyEvent();
 
diff -Nur chart2.orig/source/model/template/AreaChartTypeTemplate.cxx chart2/source/model/template/AreaChartTypeTemplate.cxx
--- chart2.orig/source/model/template/AreaChartTypeTemplate.cxx	2007-07-25 10:52:24.000000000 +0200
+++ chart2/source/model/template/AreaChartTypeTemplate.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -87,9 +87,7 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AREA_TEMPLATE_DIMENSION ));
-    rOutMap[ PROP_AREA_TEMPLATE_DIMENSION ] =
-        uno::makeAny( sal_Int32( 2 ) );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_AREA_TEMPLATE_DIMENSION, 2 );
 }
 
 const uno::Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/template/BarChartTypeTemplate.cxx chart2/source/model/template/BarChartTypeTemplate.cxx
--- chart2.orig/source/model/template/BarChartTypeTemplate.cxx	2007-07-25 10:52:50.000000000 +0200
+++ chart2/source/model/template/BarChartTypeTemplate.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -97,12 +97,8 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_BAR_TEMPLATE_DIMENSION ));
-    rOutMap[ PROP_BAR_TEMPLATE_DIMENSION ] =
-        uno::makeAny( sal_Int32( 2 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_BAR_TEMPLATE_GEOMETRY3D ));
-    rOutMap[ PROP_BAR_TEMPLATE_GEOMETRY3D ] =
-        uno::makeAny( chart2::DataPointGeometry3D::CUBOID );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_BAR_TEMPLATE_DIMENSION, 2 );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_BAR_TEMPLATE_GEOMETRY3D, ::chart2::DataPointGeometry3D::CUBOID );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/template/CandleStickChartType.cxx chart2/source/model/template/CandleStickChartType.cxx
--- chart2.orig/source/model/template/CandleStickChartType.cxx	2007-07-25 10:53:01.000000000 +0200
+++ chart2/source/model/template/CandleStickChartType.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -112,16 +112,9 @@
 {
     ::osl::MutexGuard aGuard( rMutex );
     // must match default in CTOR!
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CANDLESTICKCHARTTYPE_JAPANESE ));
-    rOutMap[ PROP_CANDLESTICKCHARTTYPE_JAPANESE ] =
-        uno::makeAny( false );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CANDLESTICKCHARTTYPE_SHOW_FIRST ));
-    rOutMap[ PROP_CANDLESTICKCHARTTYPE_SHOW_FIRST ] =
-        uno::makeAny( false );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CANDLESTICKCHARTTYPE_SHOW_HIGH_LOW ));
-    rOutMap[ PROP_CANDLESTICKCHARTTYPE_SHOW_HIGH_LOW ] =
-        uno::makeAny( true );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CANDLESTICKCHARTTYPE_JAPANESE, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CANDLESTICKCHARTTYPE_SHOW_FIRST, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CANDLESTICKCHARTTYPE_SHOW_HIGH_LOW, true );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/template/ChartType.hxx chart2/source/model/template/ChartType.hxx
--- chart2.orig/source/model/template/ChartType.hxx	2007-05-22 20:46:06.000000000 +0200
+++ chart2/source/model/template/ChartType.hxx	2007-08-01 00:19:26.000000000 +0200
@@ -159,6 +159,7 @@
     virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
 
     virtual void firePropertyChangeEvent();
+	using OPropertySet::disposing;
 
     // ____ XPropertySet ____
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL
diff -Nur chart2.orig/source/model/template/ColumnChartType.cxx chart2/source/model/template/ColumnChartType.cxx
--- chart2.orig/source/model/template/ColumnChartType.cxx	2007-05-22 20:46:59.000000000 +0200
+++ chart2/source/model/template/ColumnChartType.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -83,15 +83,11 @@
 {
     Sequence< sal_Int32 > aSeq(2);
 
-    aSeq[0]=aSeq[1]=0;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_BARCHARTTYPE_OVERLAP_SEQUENCE ));
-    rOutMap[ PROP_BARCHARTTYPE_OVERLAP_SEQUENCE ] =
-        uno::makeAny( aSeq );
-
-    aSeq[0]=aSeq[1]=100;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_BARCHARTTYPE_GAPWIDTH_SEQUENCE ));
-    rOutMap[ PROP_BARCHARTTYPE_GAPWIDTH_SEQUENCE ] =
-        uno::makeAny( aSeq );
+    aSeq[0] = aSeq[1] = 0;
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_BARCHARTTYPE_OVERLAP_SEQUENCE, aSeq );
+
+    aSeq[0] = aSeq[1] = 100;
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_BARCHARTTYPE_GAPWIDTH_SEQUENCE, aSeq );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/template/ColumnLineChartTypeTemplate.cxx chart2/source/model/template/ColumnLineChartTypeTemplate.cxx
--- chart2.orig/source/model/template/ColumnLineChartTypeTemplate.cxx	2007-05-22 20:47:35.000000000 +0200
+++ chart2/source/model/template/ColumnLineChartTypeTemplate.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -95,9 +95,7 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_COL_LINE_NUMBER_OF_LINES ));
-    rOutMap[ PROP_COL_LINE_NUMBER_OF_LINES ] =
-        uno::makeAny( sal_Int32( 1 ) );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_COL_LINE_NUMBER_OF_LINES, 1 );
 }
 
 const uno::Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/template/LineChartType.cxx chart2/source/model/template/LineChartType.cxx
--- chart2.orig/source/model/template/LineChartType.cxx	2007-05-22 20:49:07.000000000 +0200
+++ chart2/source/model/template/LineChartType.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -94,19 +94,12 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LINECHARTTYPE_CURVE_STYLE ));
-    rOutMap[ PROP_LINECHARTTYPE_CURVE_STYLE ] =
-        uno::makeAny( chart2::CurveStyle_LINES );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LINECHARTTYPE_CURVE_RESOLUTION ));
-    rOutMap[ PROP_LINECHARTTYPE_CURVE_RESOLUTION ] =
-        uno::makeAny( sal_Int32( 20 ) );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LINECHARTTYPE_CURVE_STYLE, ::chart2::CurveStyle_LINES );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_LINECHARTTYPE_CURVE_RESOLUTION, 20 );
 
     // todo: check whether order 3 means polygons of order 3 or 2. (see
     // http://www.people.nnov.ru/fractal/Splines/Basis.htm )
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LINECHARTTYPE_SPLINE_ORDER ));
-    rOutMap[ PROP_LINECHARTTYPE_SPLINE_ORDER ] =
-        uno::makeAny( sal_Int32( 3 ) );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_LINECHARTTYPE_SPLINE_ORDER, 3 );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/template/LineChartTypeTemplate.cxx chart2/source/model/template/LineChartTypeTemplate.cxx
--- chart2.orig/source/model/template/LineChartTypeTemplate.cxx	2007-07-25 10:53:53.000000000 +0200
+++ chart2/source/model/template/LineChartTypeTemplate.cxx	2007-07-31 14:56:45.000000000 +0200
@@ -111,19 +111,12 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LINECHARTTYPE_TEMPLATE_CURVE_STYLE ));
-    rOutMap[ PROP_LINECHARTTYPE_TEMPLATE_CURVE_STYLE ] =
-        uno::makeAny( chart2::CurveStyle_LINES );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LINECHARTTYPE_TEMPLATE_CURVE_RESOLUTION ));
-    rOutMap[ PROP_LINECHARTTYPE_TEMPLATE_CURVE_RESOLUTION ] =
-        uno::makeAny( sal_Int32( 20 ) );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LINECHARTTYPE_TEMPLATE_CURVE_STYLE, chart2::CurveStyle_LINES );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_LINECHARTTYPE_TEMPLATE_CURVE_RESOLUTION, 20 );
 
     // todo: check whether order 3 means polygons of order 3 or 2. (see
     // http://www.people.nnov.ru/fractal/Splines/Basis.htm )
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LINECHARTTYPE_TEMPLATE_SPLINE_ORDER ));
-    rOutMap[ PROP_LINECHARTTYPE_TEMPLATE_SPLINE_ORDER ] =
-        uno::makeAny( sal_Int32( 3 ) );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_LINECHARTTYPE_TEMPLATE_SPLINE_ORDER, 3 );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/template/PieChartType.cxx chart2/source/model/template/PieChartType.cxx
--- chart2.orig/source/model/template/PieChartType.cxx	2007-05-22 20:50:48.000000000 +0200
+++ chart2/source/model/template/PieChartType.cxx	2007-07-31 14:56:46.000000000 +0200
@@ -84,9 +84,7 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_PIECHARTTYPE_USE_RINGS ));
-    rOutMap[ PROP_PIECHARTTYPE_USE_RINGS ] =
-        uno::makeAny( sal_False );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_PIECHARTTYPE_USE_RINGS, false );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/template/PieChartTypeTemplate.cxx chart2/source/model/template/PieChartTypeTemplate.cxx
--- chart2.orig/source/model/template/PieChartTypeTemplate.cxx	2007-07-25 10:54:31.000000000 +0200
+++ chart2/source/model/template/PieChartTypeTemplate.cxx	2007-07-31 14:56:46.000000000 +0200
@@ -126,18 +126,10 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_PIE_TEMPLATE_OFFSET_MODE ));
-    rOutMap[ PROP_PIE_TEMPLATE_OFFSET_MODE ] =
-        uno::makeAny( chart2::PieChartOffsetMode_NONE );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_PIE_TEMPLATE_DEFAULT_OFFSET ));
-    rOutMap[ PROP_PIE_TEMPLATE_DEFAULT_OFFSET ] =
-        uno::makeAny( double( 0.5 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_PIE_TEMPLATE_DIMENSION ));
-    rOutMap[ PROP_PIE_TEMPLATE_DIMENSION ] =
-        uno::makeAny( sal_Int32( 2 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_PIE_TEMPLATE_USE_RINGS ));
-    rOutMap[ PROP_PIE_TEMPLATE_USE_RINGS ] =
-        uno::makeAny( sal_False );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_PIE_TEMPLATE_OFFSET_MODE, chart2::PieChartOffsetMode_NONE );
+    ::chart::PropertyHelper::setPropertyValueDefault< double >( rOutMap, PROP_PIE_TEMPLATE_DEFAULT_OFFSET, 0.5 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_PIE_TEMPLATE_DIMENSION, 2 );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_PIE_TEMPLATE_USE_RINGS, false );
 }
 
 const uno::Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/template/ScatterChartType.cxx chart2/source/model/template/ScatterChartType.cxx
--- chart2.orig/source/model/template/ScatterChartType.cxx	2007-05-22 20:51:37.000000000 +0200
+++ chart2/source/model/template/ScatterChartType.cxx	2007-07-31 14:56:46.000000000 +0200
@@ -100,19 +100,12 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_SCATTERCHARTTYPE_CURVE_STYLE ));
-    rOutMap[ PROP_SCATTERCHARTTYPE_CURVE_STYLE ] =
-        uno::makeAny( chart2::CurveStyle_LINES );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_SCATTERCHARTTYPE_CURVE_RESOLUTION ));
-    rOutMap[ PROP_SCATTERCHARTTYPE_CURVE_RESOLUTION ] =
-        uno::makeAny( sal_Int32( 20 ) );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCATTERCHARTTYPE_CURVE_STYLE, chart2::CurveStyle_LINES );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_SCATTERCHARTTYPE_CURVE_RESOLUTION, 20 );
 
     // todo: check whether order 3 means polygons of order 3 or 2. (see
     // http://www.people.nnov.ru/fractal/Splines/Basis.htm )
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_SCATTERCHARTTYPE_SPLINE_ORDER ));
-    rOutMap[ PROP_SCATTERCHARTTYPE_SPLINE_ORDER ] =
-        uno::makeAny( sal_Int32( 3 ) );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_SCATTERCHARTTYPE_SPLINE_ORDER, 3 );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/template/ScatterChartTypeTemplate.cxx chart2/source/model/template/ScatterChartTypeTemplate.cxx
--- chart2.orig/source/model/template/ScatterChartTypeTemplate.cxx	2007-07-25 10:54:42.000000000 +0200
+++ chart2/source/model/template/ScatterChartTypeTemplate.cxx	2007-07-31 14:56:46.000000000 +0200
@@ -114,19 +114,12 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_SCATTERCHARTTYPE_TEMPLATE_CURVE_STYLE ));
-    rOutMap[ PROP_SCATTERCHARTTYPE_TEMPLATE_CURVE_STYLE ] =
-        uno::makeAny( chart2::CurveStyle_LINES );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_SCATTERCHARTTYPE_TEMPLATE_CURVE_RESOLUTION ));
-    rOutMap[ PROP_SCATTERCHARTTYPE_TEMPLATE_CURVE_RESOLUTION ] =
-        uno::makeAny( sal_Int32( 20 ) );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCATTERCHARTTYPE_TEMPLATE_CURVE_STYLE, chart2::CurveStyle_LINES );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_SCATTERCHARTTYPE_TEMPLATE_CURVE_RESOLUTION, 20 );
 
     // todo: check whether order 3 means polygons of order 3 or 2. (see
     // http://www.people.nnov.ru/fractal/Splines/Basis.htm )
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_SCATTERCHARTTYPE_TEMPLATE_SPLINE_ORDER ));
-    rOutMap[ PROP_SCATTERCHARTTYPE_TEMPLATE_SPLINE_ORDER ] =
-        uno::makeAny( sal_Int32( 3 ) );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_SCATTERCHARTTYPE_TEMPLATE_SPLINE_ORDER, 3 );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/model/template/StockChartTypeTemplate.cxx chart2/source/model/template/StockChartTypeTemplate.cxx
--- chart2.orig/source/model/template/StockChartTypeTemplate.cxx	2007-07-25 10:54:55.000000000 +0200
+++ chart2/source/model/template/StockChartTypeTemplate.cxx	2007-07-31 14:56:46.000000000 +0200
@@ -134,18 +134,10 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_STOCKCHARTTYPE_TEMPLATE_VOLUME ));
-    rOutMap[ PROP_STOCKCHARTTYPE_TEMPLATE_VOLUME ] =
-        uno::makeAny( false );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_STOCKCHARTTYPE_TEMPLATE_OPEN ));
-    rOutMap[ PROP_STOCKCHARTTYPE_TEMPLATE_OPEN ] =
-        uno::makeAny( false );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_STOCKCHARTTYPE_TEMPLATE_LOW_HIGH ));
-    rOutMap[ PROP_STOCKCHARTTYPE_TEMPLATE_LOW_HIGH ] =
-        uno::makeAny( true );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_STOCKCHARTTYPE_TEMPLATE_JAPANESE ));
-    rOutMap[ PROP_STOCKCHARTTYPE_TEMPLATE_JAPANESE ] =
-        uno::makeAny( false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_STOCKCHARTTYPE_TEMPLATE_VOLUME, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_STOCKCHARTTYPE_TEMPLATE_OPEN, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_STOCKCHARTTYPE_TEMPLATE_LOW_HIGH, true );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_STOCKCHARTTYPE_TEMPLATE_JAPANESE, false );
 }
 
 const Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/tools/AxisHelper.cxx chart2/source/tools/AxisHelper.cxx
--- chart2.orig/source/tools/AxisHelper.cxx	2007-05-22 20:55:06.000000000 +0200
+++ chart2/source/tools/AxisHelper.cxx	2007-07-31 23:32:45.000000000 +0200
@@ -66,6 +66,10 @@
 #include <com/sun/star/util/XCloneable.hpp>
 #endif
 
+#ifndef _COM_SUN_STAR_LANG_XSERVICENAME_HPP_
+#include <com/sun/star/lang/XServiceName.hpp>
+#endif
+
 #include <map>
 
 //.............................................................................
@@ -98,6 +102,16 @@
 }
 
 //static
+bool AxisHelper::isLogarithmic( const Reference< XScaling >& xScaling )
+{
+    bool bReturn = false;
+    Reference< lang::XServiceName > xServiceName( xScaling, uno::UNO_QUERY );
+    bReturn =( xServiceName.is() && (xServiceName->getServiceName()).equals(
+              C2U( "com.sun.star.chart2.LogarithmicScaling" )));
+    return bReturn;
+}
+
+//static
 Reference< XAxis > AxisHelper::createAxis(
           sal_Int32 nDimensionIndex
         , sal_Int32 nAxisIndex // 0==main or 1==secondary axis
diff -Nur chart2.orig/source/tools/CharacterProperties.cxx chart2/source/tools/CharacterProperties.cxx
--- chart2.orig/source/tools/CharacterProperties.cxx	2007-07-25 10:55:28.000000000 +0200
+++ chart2/source/tools/CharacterProperties.cxx	2007-07-31 14:56:46.000000000 +0200
@@ -455,170 +455,73 @@
 {
     const float fDefaultFontHeight = 13.0;
 
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_FONT_NAME ));
-    rOutMap[ PROP_CHAR_FONT_NAME ] =
-        uno::makeAny( C2U( "Albany" ));
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_FONT_NAME, C2U( "Albany" ));
     //todo correct font default:
     //see static Font OutputDevice::GetDefaultFont( USHORT nType, LanguageType eLang, ULONG nFlags, const OutputDevice* pOutDev = NULL );
     //or  SvxFontItem ... (old chart source/core/chtmodel.cxx :Font aCJKFont )
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_FONT_FAMILY ));
-    rOutMap[ PROP_CHAR_FONT_FAMILY ] =
-        uno::makeAny( awt::FontFamily::SWISS );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_FONT_CHAR_SET ));
-    rOutMap[ PROP_CHAR_FONT_CHAR_SET ] =
-        uno::makeAny( awt::CharSet::DONTKNOW );//use DONTKNOW instead of SYSTEM to avoid assertion issue 50249
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_FONT_PITCH ));
-    rOutMap[ PROP_CHAR_FONT_PITCH ] =
-        uno::makeAny( awt::FontPitch::VARIABLE );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_COLOR ));
-    rOutMap[ PROP_CHAR_COLOR ] =
-        uno::makeAny( sal_Int32(-1) );//automatic color (COL_AUTO)
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_ESCAPEMENT ));
-    rOutMap[ PROP_CHAR_ESCAPEMENT ] =
-        uno::makeAny( sal_Int16(0) );
-    
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_CHAR_HEIGHT ));
-    rOutMap[ PROP_CHAR_CHAR_HEIGHT ] =
-        uno::makeAny( fDefaultFontHeight );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_UNDERLINE ));
-    rOutMap[ PROP_CHAR_UNDERLINE ] =
-        uno::makeAny( awt::FontUnderline::NONE );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_UNDERLINE_COLOR ));
-    rOutMap[ PROP_CHAR_UNDERLINE_COLOR ] =
-        uno::makeAny( sal_Int32(-1) );//automatic color (COL_AUTO)
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_UNDERLINE_HAS_COLOR ));
-    rOutMap[ PROP_CHAR_UNDERLINE_HAS_COLOR ] =
-        uno::makeAny( sal_Bool( sal_False ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_WEIGHT ));
-    rOutMap[ PROP_CHAR_WEIGHT ] =
-        uno::makeAny( awt::FontWeight::NORMAL );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_POSTURE ));
-    rOutMap[ PROP_CHAR_POSTURE ] =
-        uno::makeAny( awt::FontSlant_NONE );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_AUTO_KERNING ));
-    rOutMap[ PROP_CHAR_AUTO_KERNING ] =
-        uno::makeAny( sal_True );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_KERNING ));
-    rOutMap[ PROP_CHAR_KERNING ] =
-        uno::makeAny( sal_Int16(0) );//todo correct default
-
-
-//     OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_CASE_MAPPING ));
-//     rOutMap[ PROP_CHAR_CASE_MAPPING ] =
-//         uno::makeAny( style::CaseMap::NONE );
-//     OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_ROTATION ));
-//     rOutMap[ PROP_CHAR_ROTATION ] =
-//         uno::makeAny( sal_Int16( 0 ) );
-//     OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_SCALE_WIDTH ));
-//     rOutMap[ PROP_CHAR_SCALE_WIDTH ] =
-//         uno::makeAny( sal_Int16( 71 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_ESCAPEMENT_HEIGHT ));
-    rOutMap[ PROP_CHAR_ESCAPEMENT_HEIGHT ] =
-        uno::makeAny( sal_Int8( 0 ) );
-
-//     OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_CROSSED_OUT ));
-//     rOutMap[ PROP_CHAR_CROSSED_OUT ] =
-//         uno::makeAny( sal_Bool( sal_False ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_STRIKE_OUT ));
-    rOutMap[ PROP_CHAR_STRIKE_OUT ] =
-        uno::makeAny( sal_Int16( awt::FontStrikeout::NONE ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_WORD_MODE ));
-    rOutMap[ PROP_CHAR_WORD_MODE ] =
-        uno::makeAny( sal_Bool( sal_False ) );
-//     OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_FLASH ));
-//     rOutMap[ PROP_CHAR_FLASH ] =
-//         uno::makeAny( sal_Bool( sal_False ) );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_LOCALE ));
-    rOutMap[ PROP_CHAR_LOCALE ] =
-        uno::makeAny( lang::Locale( C2U( "US" ), C2U( "en" ), OUString()) );//todo correct default
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_SHADOWED ));
-    rOutMap[ PROP_CHAR_SHADOWED ] =
-        uno::makeAny( sal_Bool( sal_False ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_CONTOURED ));
-    rOutMap[ PROP_CHAR_CONTOURED ] =
-        uno::makeAny( sal_Bool( sal_False ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_RELIEF ));
-    rOutMap[ PROP_CHAR_RELIEF ] =
-        uno::makeAny( text::FontRelief::NONE );
-
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_EMPHASIS ));
-    rOutMap[ PROP_CHAR_EMPHASIS ] =
-        uno::makeAny( text::FontEmphasis::NONE );
-//     OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_RUBY_ADJUST ));
-//     rOutMap[ PROP_CHAR_RUBY_ADJUST ] =
-//         uno::makeAny( text::RubyAdjust_INDENT_BLOCK );
-//     OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_RUBY_STYLE_NAME ));
-//     OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_RUBY_IS_ABOVE ));
-//     rOutMap[ PROP_CHAR_RUBY_IS_ABOVE ] =
-//         uno::makeAny( sal_Bool( sal_True ) );
-//     OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_INHIBIT_HYPHENATION ));
-//     rOutMap[ PROP_CHAR_INHIBIT_HYPHENATION ] =
-//         uno::makeAny( sal_Bool( sal_False ) );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_FONT_FAMILY, awt::FontFamily::SWISS );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_FONT_CHAR_SET, awt::CharSet::DONTKNOW );//use DONTKNOW instead of SYSTEM to avoid assertion issue 50249
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_FONT_PITCH, awt::FontPitch::VARIABLE );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_CHAR_COLOR, -1 ); //automatic color (COL_AUTO)
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_CHAR_ESCAPEMENT, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_CHAR_HEIGHT, fDefaultFontHeight );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_UNDERLINE, awt::FontUnderline::NONE );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_CHAR_UNDERLINE_COLOR, -1 ); //automatic color (COL_AUTO)
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_UNDERLINE_HAS_COLOR, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_WEIGHT, awt::FontWeight::NORMAL );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_POSTURE, awt::FontSlant_NONE );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_AUTO_KERNING, true );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_CHAR_KERNING, 0 );
+
+//     ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_CASE_MAPPING, style::CaseMap::NONE );
+//     ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_CHAR_ROTATION, 0 );
+//     ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_CHAR_SCALE_WIDTH, 71 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int8 >( rOutMap, PROP_CHAR_ESCAPEMENT_HEIGHT, 0 );
+
+//     ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_CROSSED_OUT, false );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_CHAR_STRIKE_OUT, awt::FontStrikeout::NONE );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_WORD_MODE, false );
+//     ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_FLASH, false );
+
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_LOCALE, lang::Locale( C2U( "US" ), C2U( "en" ), OUString())); // todo correct default
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_SHADOWED, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_CONTOURED, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_RELIEF, text::FontRelief::NONE );
+
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_EMPHASIS, text::FontEmphasis::NONE );
+
+//     ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_RUBY_ADJUST, text::RubyAdjust_INDENT_BLOCK );
+//     ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_RUBY_STYLE_NAME, ?? );
+//     ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_RUBY_IS_ABOVE, true );
+//     ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_INHIBIT_HYPHENATION, false );
 
     // Asian (com.sun.star.style.CharacterPropertiesAsian)
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_ASIAN_CHAR_HEIGHT ));
-    rOutMap[ PROP_CHAR_ASIAN_CHAR_HEIGHT ] =
-        uno::makeAny( fDefaultFontHeight );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_ASIAN_WEIGHT ));
-    rOutMap[ PROP_CHAR_ASIAN_WEIGHT ] =
-        uno::makeAny( awt::FontWeight::NORMAL );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_ASIAN_POSTURE ));
-    rOutMap[ PROP_CHAR_ASIAN_POSTURE ] =
-        uno::makeAny( awt::FontSlant_NONE );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_ASIAN_LOCALE ));
-    rOutMap[ PROP_CHAR_ASIAN_LOCALE ] =
-        uno::makeAny( lang::Locale( C2U( "US" ), C2U( "en" ), OUString()) );//todo correct default
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_ASIAN_FONT_NAME ));
-    rOutMap[ PROP_CHAR_ASIAN_FONT_NAME ] =
-        uno::makeAny( C2U( "Andale Sans UI" ));
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_CHAR_HEIGHT, fDefaultFontHeight );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_WEIGHT, awt::FontWeight::NORMAL );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_POSTURE, awt::FontSlant_NONE );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_LOCALE, lang::Locale( C2U( "US" ), C2U( "en" ), OUString())); //todo correct default
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_FONT_NAME, C2U( "Andale Sans UI" ));
+
     //todo correct font default:
     //see static Font OutputDevice::GetDefaultFont( USHORT nType, LanguageType eLang, ULONG nFlags, const OutputDevice* pOutDev = NULL );
     //or  SvxFontItem ... (old chart source/core/chtmodel.cxx :Font aCJKFont )
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_ASIAN_FONT_FAMILY ));
-    rOutMap[ PROP_CHAR_ASIAN_FONT_FAMILY ] =
-        uno::makeAny( awt::FontFamily::SWISS );//todo correct default
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_ASIAN_CHAR_SET ));
-    rOutMap[ PROP_CHAR_ASIAN_CHAR_SET ] =
-        uno::makeAny( awt::CharSet::DONTKNOW );//use DONTKNOW instead of SYSTEM to avoid assertion issue 50249
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_ASIAN_FONT_PITCH ));
-    rOutMap[ PROP_CHAR_ASIAN_FONT_PITCH ] =
-        uno::makeAny( awt::FontPitch::VARIABLE );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_FONT_FAMILY, awt::FontFamily::SWISS ); //todo correct default
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_CHAR_SET, awt::CharSet::DONTKNOW );    //use DONTKNOW instead of SYSTEM to avoid assertion issue 50249
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_FONT_PITCH, awt::FontPitch::VARIABLE );
 
     // Complex Text Layout (com.sun.star.style.CharacterPropertiesComplex)
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_COMPLEX_CHAR_HEIGHT ));
-    rOutMap[ PROP_CHAR_COMPLEX_CHAR_HEIGHT ] =
-        uno::makeAny( fDefaultFontHeight );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_COMPLEX_WEIGHT ));
-    rOutMap[ PROP_CHAR_COMPLEX_WEIGHT ] =
-        uno::makeAny( awt::FontWeight::NORMAL );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_COMPLEX_POSTURE ));
-    rOutMap[ PROP_CHAR_COMPLEX_POSTURE ] =
-        uno::makeAny( awt::FontSlant_NONE );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_COMPLEX_LOCALE ));
-    rOutMap[ PROP_CHAR_COMPLEX_LOCALE ] =
-        uno::makeAny( lang::Locale( C2U( "US" ), C2U( "en" ), OUString()) );//todo correct default
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_COMPLEX_FONT_NAME ));
-    rOutMap[ PROP_CHAR_COMPLEX_FONT_NAME ] =
-        uno::makeAny( C2U( "Tahoma" ));//todo correct default
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_CHAR_HEIGHT, fDefaultFontHeight );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_WEIGHT, awt::FontWeight::NORMAL );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_POSTURE, awt::FontSlant_NONE );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_LOCALE, lang::Locale( C2U( "US" ), C2U( "en" ), OUString())); //todo correct default
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_FONT_NAME, C2U( "Tahoma" )); //todo correct default
+
     //todo correct font default:
     //see static Font OutputDevice::GetDefaultFont( USHORT nType, LanguageType eLang, ULONG nFlags, const OutputDevice* pOutDev = NULL );
     //or  SvxFontItem ... (old chart source/core/chtmodel.cxx :Font aCJKFont )
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_COMPLEX_FONT_FAMILY ));
-    rOutMap[ PROP_CHAR_COMPLEX_FONT_FAMILY ] =
-        uno::makeAny( awt::FontFamily::SWISS );//todo correct default
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_COMPLEX_CHAR_SET ));
-    rOutMap[ PROP_CHAR_COMPLEX_CHAR_SET ] =
-        uno::makeAny( awt::CharSet::DONTKNOW );//use DONTKNOW instead of SYSTEM to avoid assertion issue 50249
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_CHAR_COMPLEX_FONT_PITCH ));
-    rOutMap[ PROP_CHAR_COMPLEX_FONT_PITCH ] =
-        uno::makeAny( awt::FontPitch::VARIABLE );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_FONT_FAMILY, awt::FontFamily::SWISS );//todo correct default
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_CHAR_SET, awt::CharSet::DONTKNOW );//use DONTKNOW instead of SYSTEM to avoid assertion issue 50249
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_FONT_PITCH, awt::FontPitch::VARIABLE );
 }
 
 bool CharacterProperties::IsCharacterPropertyHandle( sal_Int32 nHandle )
diff -Nur chart2.orig/source/tools/ErrorBar.cxx chart2/source/tools/ErrorBar.cxx
--- chart2.orig/source/tools/ErrorBar.cxx	2007-07-25 10:57:00.000000000 +0200
+++ chart2/source/tools/ErrorBar.cxx	2007-07-31 14:56:46.000000000 +0200
@@ -126,24 +126,12 @@
 void lcl_AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_ERROR_BAR_STYLE ));
-    rOutMap[ PROP_ERROR_BAR_STYLE ] =
-        uno::makeAny( chart2::ErrorBarStyle_NONE );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_ERROR_BAR_POS_ERROR ));
-    rOutMap[ PROP_ERROR_BAR_POS_ERROR ] =
-        uno::makeAny( 0.0 );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_ERROR_BAR_NEG_ERROR ));
-    rOutMap[ PROP_ERROR_BAR_NEG_ERROR ] =
-        uno::makeAny( 0.0 );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_ERROR_BAR_WEIGHT ));
-    rOutMap[ PROP_ERROR_BAR_WEIGHT ] =
-        uno::makeAny( 1.0 );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_ERROR_BAR_SHOW_POS_ERROR ));
-    rOutMap[ PROP_ERROR_BAR_SHOW_POS_ERROR ] =
-        uno::makeAny( sal_True );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_ERROR_BAR_SHOW_NEG_ERROR ));
-    rOutMap[ PROP_ERROR_BAR_SHOW_NEG_ERROR ] =
-        uno::makeAny( sal_True );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_ERROR_BAR_STYLE, chart2::ErrorBarStyle_NONE );
+    ::chart::PropertyHelper::setPropertyValueDefault< double >( rOutMap, PROP_ERROR_BAR_POS_ERROR, 0.0 );
+    ::chart::PropertyHelper::setPropertyValueDefault< double >( rOutMap, PROP_ERROR_BAR_NEG_ERROR, 0.0 );
+    ::chart::PropertyHelper::setPropertyValueDefault< double >( rOutMap, PROP_ERROR_BAR_WEIGHT, 1.0 );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_ERROR_BAR_SHOW_POS_ERROR, true );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_ERROR_BAR_SHOW_NEG_ERROR, true );
 }
 
 const uno::Sequence< Property > & lcl_GetPropertySequence()
diff -Nur chart2.orig/source/tools/FillProperties.cxx chart2/source/tools/FillProperties.cxx
--- chart2.orig/source/tools/FillProperties.cxx	2007-07-25 10:57:12.000000000 +0200
+++ chart2/source/tools/FillProperties.cxx	2007-07-31 14:56:46.000000000 +0200
@@ -249,21 +249,11 @@
 void lcl_AddDefaultsToMap_without_BitmapProperties(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_STYLE ));
-    rOutMap[ FillProperties::PROP_FILL_STYLE ] =
-        uno::makeAny( drawing::FillStyle_SOLID );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_COLOR ));
-    rOutMap[ FillProperties::PROP_FILL_COLOR ] =
-        uno::makeAny( sal_Int32( 0xd9d9d9 ) ); // gray85
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_TRANSPARENCE ));
-    rOutMap[ FillProperties::PROP_FILL_TRANSPARENCE ] =
-        uno::makeAny( sal_Int16( 0 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_GRADIENT_STEPCOUNT ));
-    rOutMap[ FillProperties::PROP_FILL_GRADIENT_STEPCOUNT ] =
-        uno::makeAny( sal_Int16( 0 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BACKGROUND ));
-    rOutMap[ FillProperties::PROP_FILL_BACKGROUND ] =
-        uno::makeAny( sal_Bool( sal_False ) );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, FillProperties::PROP_FILL_STYLE, drawing::FillStyle_SOLID );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, FillProperties::PROP_FILL_COLOR, 0xd9d9d9 ); // gray85
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_TRANSPARENCE, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_GRADIENT_STEPCOUNT, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, FillProperties::PROP_FILL_BACKGROUND, false );
 }
 
 void lcl_AddDefaultsToMap_only_BitmapProperties(
@@ -272,27 +262,16 @@
     uno::Any aSalInt16Zero = uno::makeAny( sal_Int16( 0 ));
     uno::Any aSalInt32SizeDefault = uno::makeAny( sal_Int32( 0 ));
 
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_OFFSETX ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_OFFSETX ] = aSalInt16Zero;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_OFFSETY ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_OFFSETY ] = aSalInt16Zero;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETX ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETX ] = aSalInt16Zero;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETY ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETY ] = aSalInt16Zero;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_RECTANGLEPOINT ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_RECTANGLEPOINT ] =
-        uno::makeAny( drawing::RectanglePoint_MIDDLE_MIDDLE );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_LOGICALSIZE ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_LOGICALSIZE ] =
-        uno::makeAny( true );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_SIZEX ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_SIZEX ] = aSalInt32SizeDefault;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_SIZEY ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_SIZEY ] = aSalInt32SizeDefault;
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_MODE ));
-    rOutMap[ FillProperties::PROP_FILL_BITMAP_MODE ] =
-        uno::makeAny( drawing::BitmapMode_REPEAT );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_OFFSETX, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_OFFSETY, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETX, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETY, 0 );
+
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, FillProperties::PROP_FILL_BITMAP_RECTANGLEPOINT, drawing::RectanglePoint_MIDDLE_MIDDLE );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, FillProperties::PROP_FILL_BITMAP_LOGICALSIZE, true );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, FillProperties::PROP_FILL_BITMAP_SIZEX, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, FillProperties::PROP_FILL_BITMAP_SIZEY, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, FillProperties::PROP_FILL_BITMAP_MODE, drawing::BitmapMode_REPEAT );
 }
 
 }//end anonymous namespace
diff -Nur chart2.orig/source/tools/LineProperties.cxx chart2/source/tools/LineProperties.cxx
--- chart2.orig/source/tools/LineProperties.cxx	2007-05-22 21:00:52.000000000 +0200
+++ chart2/source/tools/LineProperties.cxx	2007-07-31 14:56:46.000000000 +0200
@@ -118,21 +118,11 @@
 void LineProperties::AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LINE_STYLE ));
-    rOutMap[ PROP_LINE_STYLE ] =
-        uno::makeAny( drawing::LineStyle_SOLID );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LINE_WIDTH ));
-    rOutMap[ PROP_LINE_WIDTH ] =
-        uno::makeAny( sal_Int32( 0 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LINE_COLOR ));
-    rOutMap[ PROP_LINE_COLOR ] =
-        uno::makeAny( sal_Int32( 0x000000 ) );  // black
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LINE_TRANSPARENCE ));
-    rOutMap[ PROP_LINE_TRANSPARENCE ] =
-        uno::makeAny( sal_Int16( 0 ) );
-    OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_LINE_JOINT ));
-    rOutMap[ PROP_LINE_JOINT ] =
-        uno::makeAny( drawing::LineJoint_NONE );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LINE_STYLE, drawing::LineStyle_SOLID );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_LINE_WIDTH, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_LINE_COLOR, 0x000000 );  // black
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_LINE_TRANSPARENCE, 0 );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LINE_JOINT, drawing::LineJoint_NONE );
 }
 
 //static
diff -Nur chart2.orig/source/tools/ModifyListenerCallBack.cxx chart2/source/tools/ModifyListenerCallBack.cxx
--- chart2.orig/source/tools/ModifyListenerCallBack.cxx	2007-07-25 10:58:25.000000000 +0200
+++ chart2/source/tools/ModifyListenerCallBack.cxx	2007-08-01 00:19:26.000000000 +0200
@@ -68,7 +68,9 @@
 
     //XEventListener
     virtual void SAL_CALL disposing( const lang::EventObject& Source ) throw (uno::RuntimeException);
-    
+
+    using ::cppu::WeakComponentImplHelperBase::disposing;
+
 private:
     Link m_aLink;//will be callef on modify
     Reference< util::XModifyBroadcaster > m_xBroadcaster;//broadcaster to listen at
diff -Nur chart2.orig/source/tools/PropertyHelper.cxx chart2/source/tools/PropertyHelper.cxx
--- chart2.orig/source/tools/PropertyHelper.cxx	2007-05-22 21:03:24.000000000 +0200
+++ chart2/source/tools/PropertyHelper.cxx	2007-07-31 14:56:46.000000000 +0200
@@ -198,9 +198,10 @@
 
 namespace chart
 {
+namespace PropertyHelper
+{
 
-// static
-void PropertyHelper::copyProperties(
+void copyProperties(
     const Reference< XPropertySet > & xSource,
     const Reference< XPropertySet > & xDestination )
 {
@@ -231,8 +232,7 @@
     }
 }
 
-// static
-OUString PropertyHelper::addLineDashUniqueNameToTable(
+OUString addLineDashUniqueNameToTable(
     const Any & rValue,
     const Reference< lang::XMultiServiceFactory > & xFact,
     const OUString & rPreferredName )
@@ -249,8 +249,7 @@
     return OUString();
 }
 
-// static
-OUString PropertyHelper::addGradientUniqueNameToTable(
+OUString addGradientUniqueNameToTable(
     const Any & rValue,
     const Reference< lang::XMultiServiceFactory > & xFact,
     const OUString & rPreferredName )
@@ -268,8 +267,7 @@
 }
 
 
-// static
-OUString PropertyHelper::addTransparencyGradientUniqueNameToTable(
+OUString addTransparencyGradientUniqueNameToTable(
     const Any & rValue,
     const Reference< lang::XMultiServiceFactory > & xFact,
     const OUString & rPreferredName )
@@ -286,8 +284,7 @@
     return OUString();
 }
 
-// static
-OUString PropertyHelper::addHatchUniqueNameToTable(
+OUString addHatchUniqueNameToTable(
     const Any & rValue,
     const Reference< lang::XMultiServiceFactory > & xFact,
     const OUString & rPreferredName )
@@ -304,8 +301,7 @@
     return OUString();
 }
 
-// static
-OUString PropertyHelper::addBitmapUniqueNameToTable(
+OUString addBitmapUniqueNameToTable(
     const Any & rValue,
     const Reference< lang::XMultiServiceFactory > & xFact,
     const OUString & rPreferredName )
@@ -322,4 +318,26 @@
     return OUString();
 }
 
+void setPropertyValueAny( tPropertyValueMap & rOutMap, tPropertyValueMapKey key, const ::com::sun::star::uno::Any & rAny )
+{
+    tPropertyValueMap::iterator aIt( rOutMap.find( key ));
+    if( aIt == rOutMap.end())
+        rOutMap.insert( tPropertyValueMap::value_type( key, rAny ));
+    else
+        (*aIt).second = rAny;
+}
+
+void setPropertyValueDefaultAny( tPropertyValueMap & rOutMap, tPropertyValueMapKey key, const ::com::sun::star::uno::Any & rAny )
+{
+    OSL_ENSURE( rOutMap.end() == rOutMap.find( key ), "Default already exists for property" );
+    setPropertyValue( rOutMap, key, rAny );
+}
+
+void setEmptyPropertyValueDefault( tPropertyValueMap & rOutMap, tPropertyValueMapKey key )
+{
+    setPropertyValueDefaultAny( rOutMap, key, ::com::sun::star::uno::Any());
+}
+
+} // namespace PropertyHelper
+
 } //  namespace chart
diff -Nur chart2.orig/source/tools/RegressionCurveModel.hxx chart2/source/tools/RegressionCurveModel.hxx
--- chart2.orig/source/tools/RegressionCurveModel.hxx	2007-05-22 21:04:17.000000000 +0200
+++ chart2/source/tools/RegressionCurveModel.hxx	2007-08-01 00:19:26.000000000 +0200
@@ -150,6 +150,8 @@
         const ::com::sun::star::lang::EventObject& Source )
         throw (::com::sun::star::uno::RuntimeException);
 
+    using ::cppu::OPropertySetHelper::disposing;
+
     // ____ OPropertySet ____
     virtual void firePropertyChangeEvent();
 
diff -Nur chart2.orig/source/tools/SceneProperties.cxx chart2/source/tools/SceneProperties.cxx
--- chart2.orig/source/tools/SceneProperties.cxx	2007-07-03 15:44:41.000000000 +0200
+++ chart2/source/tools/SceneProperties.cxx	2007-07-31 14:56:46.000000000 +0200
@@ -340,9 +340,6 @@
 void SceneProperties::AddDefaultsToMap(
     ::chart::tPropertyValueMap & rOutMap )
 {
-    uno::Any aTrue( sal_True );
-    uno::Any aFalse( sal_False );
-
     // Identity Matrix
     drawing::HomogenMatrix aMtx;
     aMtx.Line1.Column1 = aMtx.Line2.Column2 =
@@ -352,62 +349,57 @@
         aMtx.Line3.Column1 = aMtx.Line3.Column2 = aMtx.Line3.Column4 =
         aMtx.Line4.Column1 = aMtx.Line4.Column2 = aMtx.Line4.Column3 = 0.0;
 
-    rOutMap[ PROP_SCENE_TRANSF_MATRIX ] = uno::makeAny( aMtx );
-
-    sal_Int32 nDefaultDistance = 4200;
-    rOutMap[ PROP_SCENE_DISTANCE ] = uno::makeAny( nDefaultDistance );
-
-    sal_Int32 nDefaultFocalLength = 8000;
-    rOutMap[ PROP_SCENE_FOCAL_LENGTH ] = uno::makeAny( nDefaultFocalLength );
-
-//     rOutMap[ PROP_SCENE_SHADOW_SLANT ];
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_TRANSF_MATRIX, aMtx );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_SCENE_DISTANCE, 4200 );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_SCENE_FOCAL_LENGTH, 8000 );
 
-    rOutMap[ PROP_SCENE_SHADE_MODE ] = uno::makeAny( drawing::ShadeMode_SMOOTH );
+//     PROP_SCENE_SHADOW_SLANT;
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_SHADE_MODE, drawing::ShadeMode_SMOOTH );
 
-    sal_Int32 nDefaultAmbientColor = ChartTypeHelper::getDefaultAmbientLightColor(ThreeDLookScheme_Simple,0);
-    rOutMap[ PROP_SCENE_AMBIENT_COLOR ] = uno::makeAny( nDefaultAmbientColor );
+    ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >(
+        rOutMap, PROP_SCENE_FOCAL_LENGTH, ChartTypeHelper::getDefaultAmbientLightColor(ThreeDLookScheme_Simple,0));
 
-    rOutMap[ PROP_SCENE_TWO_SIDED_LIGHTING ] = aTrue;
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_TWO_SIDED_LIGHTING, true );
 
     drawing::Position3D vrp( 0.0, 0.0, 1.0 );
     drawing::Direction3D vpn( 0.0, 0.0, 1.0 );
     drawing::Direction3D vup( 0.0, 1.0, 0.0 );
     drawing::CameraGeometry aDefaultCameraGeometry( vrp, vpn, vup );
-    rOutMap[ PROP_SCENE_CAMERA_GEOMETRY ] = uno::makeAny( aDefaultCameraGeometry );
 
-    rOutMap[ PROP_SCENE_PERSPECTIVE ] = uno::makeAny( drawing::ProjectionMode_PERSPECTIVE );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_CAMERA_GEOMETRY, aDefaultCameraGeometry );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_PERSPECTIVE, drawing::ProjectionMode_PERSPECTIVE );
 
     // Light Sources
     // -------------
-    rOutMap[ PROP_SCENE_LIGHT_ON_1 ] = aFalse;
-    rOutMap[ PROP_SCENE_LIGHT_ON_2 ] = aTrue;
-    rOutMap[ PROP_SCENE_LIGHT_ON_3 ] = aFalse;
-    rOutMap[ PROP_SCENE_LIGHT_ON_4 ] = aFalse;
-    rOutMap[ PROP_SCENE_LIGHT_ON_5 ] = aFalse;
-    rOutMap[ PROP_SCENE_LIGHT_ON_6 ] = aFalse;
-    rOutMap[ PROP_SCENE_LIGHT_ON_7 ] = aFalse;
-    rOutMap[ PROP_SCENE_LIGHT_ON_8 ] = aFalse;
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_LIGHT_ON_1, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_LIGHT_ON_2, true );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_LIGHT_ON_3, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_LIGHT_ON_4, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_LIGHT_ON_5, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_LIGHT_ON_6, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_LIGHT_ON_7, false );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_LIGHT_ON_8, false );
 
     uno::Any aDefaultLightDirection( uno::makeAny( drawing::Direction3D( 0.0, 0.0, 1.0 ) ) );
-    rOutMap[ PROP_SCENE_LIGHT_DIRECTION_1 ] = aDefaultLightDirection;
-    rOutMap[ PROP_SCENE_LIGHT_DIRECTION_2 ] = uno::makeAny( ChartTypeHelper::getDefaultSimpleLightDirection(0) );
-    rOutMap[ PROP_SCENE_LIGHT_DIRECTION_3 ] = aDefaultLightDirection;
-    rOutMap[ PROP_SCENE_LIGHT_DIRECTION_4 ] = aDefaultLightDirection;
-    rOutMap[ PROP_SCENE_LIGHT_DIRECTION_5 ] = aDefaultLightDirection;
-    rOutMap[ PROP_SCENE_LIGHT_DIRECTION_6 ] = aDefaultLightDirection;
-    rOutMap[ PROP_SCENE_LIGHT_DIRECTION_7 ] = aDefaultLightDirection;
-    rOutMap[ PROP_SCENE_LIGHT_DIRECTION_8 ] = aDefaultLightDirection;
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_DIRECTION_1, aDefaultLightDirection );
+    ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_SCENE_LIGHT_DIRECTION_2, ChartTypeHelper::getDefaultSimpleLightDirection(0));
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_DIRECTION_3, aDefaultLightDirection );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_DIRECTION_4, aDefaultLightDirection );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_DIRECTION_5, aDefaultLightDirection );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_DIRECTION_6, aDefaultLightDirection );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_DIRECTION_7, aDefaultLightDirection );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_DIRECTION_8, aDefaultLightDirection );
 
     uno::Any aDefaultLightColor;
     aDefaultLightColor <<= ChartTypeHelper::getDefaultDirectLightColor(ThreeDLookScheme_Simple,0);
-    rOutMap[ PROP_SCENE_LIGHT_COLOR_1 ] = aDefaultLightColor;
-    rOutMap[ PROP_SCENE_LIGHT_COLOR_2 ] = aDefaultLightColor;
-    rOutMap[ PROP_SCENE_LIGHT_COLOR_3 ] = aDefaultLightColor;
-    rOutMap[ PROP_SCENE_LIGHT_COLOR_4 ] = aDefaultLightColor;
-    rOutMap[ PROP_SCENE_LIGHT_COLOR_5 ] = aDefaultLightColor;
-    rOutMap[ PROP_SCENE_LIGHT_COLOR_6 ] = aDefaultLightColor;
-    rOutMap[ PROP_SCENE_LIGHT_COLOR_7 ] = aDefaultLightColor;
-    rOutMap[ PROP_SCENE_LIGHT_COLOR_8 ] = aDefaultLightColor;
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_COLOR_1, aDefaultLightColor );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_COLOR_2, aDefaultLightColor );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_COLOR_3, aDefaultLightColor );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_COLOR_4, aDefaultLightColor );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_COLOR_5, aDefaultLightColor );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_COLOR_6, aDefaultLightColor );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_COLOR_7, aDefaultLightColor );
+    ::chart::PropertyHelper::setPropertyValueDefaultAny( rOutMap, PROP_SCENE_LIGHT_COLOR_8, aDefaultLightColor );
 }
 
 } //  namespace chart
diff -Nur chart2.orig/source/tools/UncachedDataSequence.cxx chart2/source/tools/UncachedDataSequence.cxx
--- chart2.orig/source/tools/UncachedDataSequence.cxx	2007-07-25 11:01:02.000000000 +0200
+++ chart2/source/tools/UncachedDataSequence.cxx	2007-08-01 00:19:26.000000000 +0200
@@ -296,8 +296,7 @@
 ::sal_Int32 SAL_CALL UncachedDataSequence::getCount()
     throw (uno::RuntimeException)
 {
-    // IMPLEMENT !!!
-    throw uno::RuntimeException();
+    OSL_ENSURE( false, "Implement!" );
     return 0;
 }
 
@@ -306,8 +305,7 @@
            lang::WrappedTargetException,
            uno::RuntimeException)
 {
-    // IMPLEMENT !!!
-    throw uno::RuntimeException();
+    OSL_ENSURE( false, "Implement!" );
     return uno::Any();
 }
 
diff -Nur chart2.orig/source/view/axes/ScaleAutomatism.cxx chart2/source/view/axes/ScaleAutomatism.cxx
--- chart2.orig/source/view/axes/ScaleAutomatism.cxx	2007-06-11 17:02:44.000000000 +0200
+++ chart2/source/view/axes/ScaleAutomatism.cxx	2007-07-31 23:33:31.000000000 +0200
@@ -39,10 +39,7 @@
 #include "macros.hxx"
 #include "TickmarkHelper.hxx"
 #include "Scaling.hxx"
-
-#ifndef _COM_SUN_STAR_LANG_XSERVICENAME_HPP_
-#include <com/sun/star/lang/XServiceName.hpp>
-#endif
+#include "AxisHelper.hxx"
 
 #ifndef INCLUDED_RTL_MATH_HXX
 #include <rtl/math.hxx>
@@ -176,10 +173,7 @@
     }
     else
     {
-        uno::Reference< lang::XServiceName > xServiceName( rExplicitScale.Scaling, uno::UNO_QUERY );
-        bIsLogarithm = xServiceName.is() && xServiceName->getServiceName().equals(
-                          C2U( "com.sun.star.chart2.LogarithmicScaling" ) );
-
+        bIsLogarithm = AxisHelper::isLogarithmic( rExplicitScale.Scaling );
         if( bIsLogarithm )
             calculateExplicitIncrementAndScaleForLogarithmic( rExplicitScale, rExplicitIncrement, bAutoMinimum, bAutoMaximum );
         else
diff -Nur chart2.orig/source/view/inc/PlottingPositionHelper.hxx chart2/source/view/inc/PlottingPositionHelper.hxx
--- chart2.orig/source/view/inc/PlottingPositionHelper.hxx	2007-05-22 21:19:45.000000000 +0200
+++ chart2/source/view/inc/PlottingPositionHelper.hxx	2007-08-01 00:19:26.000000000 +0200
@@ -223,6 +223,8 @@
     ::com::sun::star::drawing::Position3D
             transformUnitCircleToScene( double fUnitAngleDegree, double fUnitRadius, double fLogicZ, bool bDoScaling=true ) const;
 
+    using PlottingPositionHelper::transformScaledLogicToScene;
+
     double  getInnerLogicRadius() const;
     double  getOuterLogicRadius() const;
 
diff -Nur chart2.orig/source/view/main/ChartItemPool.cxx chart2/source/view/main/ChartItemPool.cxx
--- chart2.orig/source/view/main/ChartItemPool.cxx	2007-07-25 11:05:43.000000000 +0200
+++ chart2/source/view/main/ChartItemPool.cxx	2007-07-31 14:37:01.000000000 +0200
@@ -202,7 +202,7 @@
 	ppPoolDefaults[SCHATTR_AXIS_DUMMY2			- SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS_DUMMY2,0);
 	ppPoolDefaults[SCHATTR_AXIS_DUMMY3			- SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS_DUMMY3,0);
 	
-	ppPoolDefaults[SCHATTR_SYMBOL_BRUSH			- SCHATTR_START] = new SvxBrushItem(SCHATTR_SYMBOL_BRUSH, SCHATTR_SYMBOL_BRUSH);
+	ppPoolDefaults[SCHATTR_SYMBOL_BRUSH			- SCHATTR_START] = new SvxBrushItem(SCHATTR_SYMBOL_BRUSH);
 
 	ppPoolDefaults[SCHATTR_STOCK_VOLUME 		- SCHATTR_START] = new SfxBoolItem(SCHATTR_STOCK_VOLUME,0);
 	ppPoolDefaults[SCHATTR_STOCK_UPDOWN			- SCHATTR_START] = new SfxBoolItem(SCHATTR_STOCK_UPDOWN,0);
diff -Nur chart2.orig/source/view/main/ChartView.cxx chart2/source/view/main/ChartView.cxx
--- chart2.orig/source/view/main/ChartView.cxx	2007-07-25 11:05:56.000000000 +0200
+++ chart2/source/view/main/ChartView.cxx	2007-07-31 22:52:07.000000000 +0200
@@ -147,6 +147,9 @@
 #ifndef _COM_SUN_STAR_IO_XSEEKABLE_HPP_
 #include <com/sun/star/io/XSeekable.hpp>
 #endif
+#ifndef _COM_SUN_STAR_UTIL_XMODIFIABLE_HPP_
+#include <com/sun/star/util/XModifiable.hpp>
+#endif
 #ifndef _COM_SUN_STAR_UTIL_XREFRESHABLE_HPP_
 #include <com/sun/star/util/XRefreshable.hpp>
 #endif
@@ -249,12 +252,15 @@
         m_pDrawModelWrapper = ::boost::shared_ptr< DrawModelWrapper >( new DrawModelWrapper( m_xCC ) );
         m_xShapeFactory = m_pDrawModelWrapper->getShapeFactory();
         m_xDrawPage = m_pDrawModelWrapper->getMainDrawPage();
+        StartListening( m_pDrawModelWrapper->getSdrModel(), FALSE /*bPreventDups*/ );
         // \--
     }
 }
 
 ChartView::~ChartView()
 {
+    if( m_pDrawModelWrapper.get() )
+        EndListening( m_pDrawModelWrapper->getSdrModel(), FALSE /*bAllDups*/ );
     m_xDrawPage = NULL;
     impl_deleteCoordinateSystems();
 }
@@ -2240,6 +2246,18 @@
     impl_notifyModeChangeListener(C2U("dirty"));
 }
 
+//SfxListener
+void ChartView::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& /*rHint*/ )
+{
+    //#i77362 change notification for changes on additional shapes are missing
+    if( m_bInViewUpdate )
+        return;
+
+    Reference< util::XModifiable > xModifiable( m_xChartModel, uno::UNO_QUERY );
+    if( xModifiable.is() )
+        xModifiable->setModified( sal_True );
+}
+
 void ChartView::impl_notifyModeChangeListener( const rtl::OUString& rNewMode )
 {
     try
diff -Nur chart2.orig/source/view/main/ChartView.hxx chart2/source/view/main/ChartView.hxx
--- chart2.orig/source/view/main/ChartView.hxx	2007-07-25 11:06:07.000000000 +0200
+++ chart2/source/view/main/ChartView.hxx	2007-07-31 22:52:08.000000000 +0200
@@ -45,6 +45,11 @@
 #include <cppuhelper/interfacecontainer.hxx>
 #endif
 
+// header for class SfxListener
+#ifndef _SFXLSTNER_HXX
+#include <svtools/lstner.hxx>
+#endif
+
 #ifndef _COM_SUN_STAR_DATATRANSFER_XTRANSFERABLE_HPP_
 #include <com/sun/star/datatransfer/XTransferable.hpp>
 #endif
@@ -119,6 +124,7 @@
         ,::com::sun::star::beans::XPropertySet
 		>
         , public ExplicitValueProvider
+        , private SfxListener
 {
 public:
     ChartView(::com::sun::star::uno::Reference<
@@ -169,6 +175,9 @@
         const ::com::sun::star::lang::EventObject& aEvent )
         throw (::com::sun::star::uno::RuntimeException);
 
+    //SfxListener
+    virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
     //-----------------------------------------------------------------
     // ::com::sun::star::util::XModeChangeBroadcaster
     //-----------------------------------------------------------------
diff -Nur solenv.orig/inc/unxsoli4.mk solenv/inc/unxsoli4.mk
--- solenv.orig/inc/unxsoli4.mk	2007-07-18 09:27:08.000000000 +0200
+++ solenv/inc/unxsoli4.mk	2007-08-01 08:24:58.000000000 +0200
@@ -107,7 +107,6 @@
 # COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see
 # settings.mk):
 MODULES_WITH_WARNINGS := \
-    chart2 \
     extensions \
     soldep \
     sw
diff -Nur solenv.orig/inc/unxsols4.mk solenv/inc/unxsols4.mk
--- solenv.orig/inc/unxsols4.mk	2007-07-18 09:27:22.000000000 +0200
+++ solenv/inc/unxsols4.mk	2007-08-01 07:54:25.000000000 +0200
@@ -113,7 +113,6 @@
 # COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see
 # settings.mk):
 MODULES_WITH_WARNINGS := \
-    chart2 \
     extensions \
     soldep \
     sw
--- chart2/source/model/main/DataSeries.cxx.orig	2007-08-03 11:24:07.000000000 +0200
+++ chart2/source/model/main/DataSeries.cxx	2007-08-03 11:26:26.000000000 +0200
@@ -254,12 +254,12 @@
         CharacterProperties::AddDefaultsToMap( aStaticDefaults );
 
         float fDefaultCharHeight = 6.0;
-        aStaticDefaults[ ::chart::CharacterProperties::PROP_CHAR_CHAR_HEIGHT ] =
-            uno::makeAny( fDefaultCharHeight );
-        aStaticDefaults[ ::chart::CharacterProperties::PROP_CHAR_ASIAN_CHAR_HEIGHT ] =
-            uno::makeAny( fDefaultCharHeight );
-        aStaticDefaults[ ::chart::CharacterProperties::PROP_CHAR_COMPLEX_CHAR_HEIGHT ] =
-            uno::makeAny( fDefaultCharHeight );
+        ::chart::PropertyHelper::setPropertyValue(aStaticDefaults,
+            ::chart::CharacterProperties::PROP_CHAR_CHAR_HEIGHT, fDefaultCharHeight);
+        ::chart::PropertyHelper::setPropertyValue(aStaticDefaults,
+            ::chart::CharacterProperties::PROP_CHAR_ASIAN_CHAR_HEIGHT, fDefaultCharHeight);
+        ::chart::PropertyHelper::setPropertyValue(aStaticDefaults,
+            ::chart::CharacterProperties::PROP_CHAR_COMPLEX_CHAR_HEIGHT, fDefaultCharHeight);
     }
 
     tPropertyValueMap::const_iterator aFound(
