diff --git a/boost/makefile.mk b/boost/makefile.mk
index f9cd078..bb3f5ea 100644
--- a/boost/makefile.mk
+++ b/boost/makefile.mk
@@ -107,11 +107,13 @@ $(PACKAGE_DIR)$/$(NORMALIZE_FLAG_FILE) : $(PACKAGE_DIR)$/$(BUILD_FLAG_FILE)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/detail $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/dynamic_bitset $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/exception $(INCCOM)$/$(PRJNAME)
+    @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/format $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/function $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/functional $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/io $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/integer $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/iterator $(INCCOM)$/$(PRJNAME)
+    @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/math $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/mpl $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/multi_array $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/multi_index $(INCCOM)$/$(PRJNAME)
diff --git a/sc/source/ui/view/prevwsh.cxx b/sc/source/ui/view/prevwsh.cxx
index b25a464..f6d5340 100644
--- a/sc/source/ui/view/prevwsh.cxx
+++ b/sc/source/ui/view/prevwsh.cxx
@@ -76,6 +76,7 @@
 #include <svx/dialogs.hrc>
 
 #include <svx/zoom_def.hxx>
+#include <boost/math/special_functions/round.hpp>
 
 #include "sc.hrc"
 #include "scabstdlg.hxx"
@@ -448,9 +449,9 @@ sal_Bool ScPreviewShell::ScrollCommand( const CommandEvent& rCEvt )
         long nOld = pPreview->GetZoom();
         long nNew = nOld;
         if ( pData->GetDelta() < 0 )
-            nNew = Max( (long) MINZOOM, (long)round( nOld / ZOOM_FACTOR ));
+            nNew = Max( (long) MINZOOM, (long)::boost::math::iround( nOld / ZOOM_FACTOR ));
         else
-            nNew = Min( (long) MAXZOOM, (long)round( nOld * ZOOM_FACTOR ));
+            nNew = Min( (long) MAXZOOM, (long)::boost::math::iround( nOld * ZOOM_FACTOR ));
 
         if ( nNew != nOld )
         {
diff --git a/sc/source/ui/view/tabview.cxx b/sc/source/ui/view/tabview.cxx
index 738aeec..960b2d6 100644
--- a/sc/source/ui/view/tabview.cxx
+++ b/sc/source/ui/view/tabview.cxx
@@ -150,6 +150,7 @@
 #include <algorithm>
 
 #include <svx/zoom_def.hxx>
+#include <boost/math/special_functions/round.hpp>
 
 #define SPLIT_MARGIN    30
 #define SC_ICONSIZE     36
@@ -1059,9 +1060,9 @@ bool ScTabView::ScrollCommand( const CommandEvent& rCEvt, ScSplitPos ePos )
             long nOld = (long)(( rOldY.GetNumerator() * 100 ) / rOldY.GetDenominator());
             long nNew = nOld;
             if ( pData->GetDelta() < 0 )
-                nNew = Max( (long) MINZOOM, (long)round( nOld / ZOOM_FACTOR ));
+                nNew = Max( (long) MINZOOM, (long)::boost::math::iround( nOld / ZOOM_FACTOR ));
             else
-                nNew = Min( (long) MAXZOOM, (long)round( nOld * ZOOM_FACTOR ));
+                nNew = Min( (long) MAXZOOM, (long)::boost::math::iround( nOld * ZOOM_FACTOR ));
 
             if ( nNew != nOld )
             {
diff --git a/sd/source/ui/view/viewshel.cxx b/sd/source/ui/view/viewshel.cxx
index 6c79ec2..e606369 100644
--- a/sd/source/ui/view/viewshel.cxx
+++ b/sd/source/ui/view/viewshel.cxx
@@ -83,6 +83,7 @@
 #include "SpellDialogChildWindow.hxx"
 
 #include <svx/zoom_def.hxx>
+#include <boost/math/special_functions/round.hpp>
 
 #include "Window.hxx"
 #include "fupoor.hxx"
@@ -718,9 +719,9 @@ bool ViewShell::HandleScrollCommand(const CommandEvent& rCEvt, ::sd::Window* pWi
                         long        nNewZoom;
 
                         if( pData->GetDelta() < 0L )
-                            nNewZoom = Max( (long) pWin->GetMinZoom(), (long)round( nOldZoom / ZOOM_FACTOR ));
+                            nNewZoom = Max( (long) pWin->GetMinZoom(), (long)::boost::math::iround( nOldZoom / ZOOM_FACTOR ));
                         else
-                            nNewZoom = Min( (long) pWin->GetMaxZoom(), (long)round( nOldZoom * ZOOM_FACTOR ));
+                            nNewZoom = Min( (long) pWin->GetMaxZoom(), (long)::boost::math::iround( nOldZoom * ZOOM_FACTOR ));
 
                         SetZoom( nNewZoom );
                         Invalidate( SID_ATTR_ZOOM );
diff --git a/svx/source/stbctrls/zoomsliderctrl.cxx b/svx/source/stbctrls/zoomsliderctrl.cxx
index b270480..f24e0a6 100644
--- a/svx/source/stbctrls/zoomsliderctrl.cxx
+++ b/svx/source/stbctrls/zoomsliderctrl.cxx
@@ -37,6 +37,7 @@
 #include <svx/dialogs.hrc>
 
 #include <svx/zoom_def.hxx>
+#include <boost/math/special_functions/round.hpp>
 
 #include <set>
 
@@ -359,11 +360,11 @@ sal_Bool SvxZoomSliderControl::MouseButtonDown( const MouseEvent & rEvt )
 
     // click to - button
     if ( nXDiff >= nButtonLeftOffset && nXDiff <= nButtonRightOffset )
-        mpImpl->mnCurrentZoom = round( mpImpl->mnCurrentZoom / ZOOM_FACTOR );
+        mpImpl->mnCurrentZoom = ::boost::math::iround( mpImpl->mnCurrentZoom / ZOOM_FACTOR );
     // click to + button
     else if ( nXDiff >= aControlRect.GetWidth() - nSliderXOffset + nButtonLeftOffset &&
               nXDiff <= aControlRect.GetWidth() - nSliderXOffset + nButtonRightOffset )
-        mpImpl->mnCurrentZoom = round( mpImpl->mnCurrentZoom * ZOOM_FACTOR );
+        mpImpl->mnCurrentZoom = ::boost::math::iround( mpImpl->mnCurrentZoom * ZOOM_FACTOR );
     // click to slider
     else if( nXDiff >= nSliderXOffset && nXDiff <= aControlRect.GetWidth() - nSliderXOffset )
         mpImpl->mnCurrentZoom = Offset2Zoom( nXDiff );
diff --git a/sw/source/ui/uiview/viewport.cxx b/sw/source/ui/uiview/viewport.cxx
index 6bbb5d6..83f2ba5 100644
--- a/sw/source/ui/uiview/viewport.cxx
+++ b/sw/source/ui/uiview/viewport.cxx
@@ -53,6 +53,7 @@
 #include <IDocumentSettingAccess.hxx>
 
 #include <svx/zoom_def.hxx>
+#include <boost/math/special_functions/round.hpp>
 
 //Das SetVisArea der DocShell darf nicht vom InnerResizePixel gerufen werden.
 //Unsere Einstellungen muessen aber stattfinden.
@@ -1311,9 +1312,9 @@ sal_Bool SwView::HandleWheelCommands( const CommandEvent& rCEvt )
     {
         sal_uInt16 nFact = pWrtShell->GetViewOptions()->GetZoom();
         if( 0L > pWData->GetDelta() )
-            nFact = static_cast< sal_uInt16 >(Max( 20, (int)round( nFact / ZOOM_FACTOR )));
+            nFact = static_cast< sal_uInt16 >(Max( 20, ::boost::math::iround( nFact / ZOOM_FACTOR )));
         else
-            nFact = static_cast< sal_uInt16 >(Min( 600, (int)round( nFact * ZOOM_FACTOR )));
+            nFact = static_cast< sal_uInt16 >(Min( 600, ::boost::math::iround( nFact * ZOOM_FACTOR )));
 
         SetZoom( SVX_ZOOM_PERCENT, nFact );
         bOk = sal_True;
