You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by da...@apache.org on 2023/02/12 19:02:04 UTC

[openoffice] branch AOO42X updated: Merge pull request #164 from DamjanJovanovic/editeng-32bit-paragraphs

This is an automated email from the ASF dual-hosted git repository.

damjan pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git


The following commit(s) were added to refs/heads/AOO42X by this push:
     new 7a98084221 Merge pull request #164 from DamjanJovanovic/editeng-32bit-paragraphs
7a98084221 is described below

commit 7a98084221b12a6dfc745f89c372ebc7c3bead50
Author: DamjanJovanovic <da...@gmail.com>
AuthorDate: Sun Feb 12 14:59:38 2023 +0200

    Merge pull request #164 from DamjanJovanovic/editeng-32bit-paragraphs
    
    Update EditEngine code to use 32 bit paragraph storage
    
    (cherry picked from commit d5edfd09768da46c2f9d7c365bf67318f0694735)
---
 main/chart2/source/view/axes/VCartesianAxis.cxx    |   4 +-
 main/editeng/inc/editeng/editdata.hxx              |  46 +++---
 main/editeng/inc/editeng/editeng.hxx               | 106 ++++++------
 main/editeng/inc/editeng/editobj.hxx               |  20 +--
 main/editeng/inc/editeng/editview.hxx              |  14 +-
 main/editeng/inc/editeng/outliner.hxx              | 110 ++++++-------
 main/editeng/inc/editeng/outlobj.hxx               |   2 +-
 main/editeng/inc/editeng/unoedhlp.hxx              |   2 +-
 main/editeng/inc/editeng/unoedprx.hxx              |  56 +++----
 main/editeng/inc/editeng/unoedsrc.hxx              |  56 +++----
 main/editeng/inc/editeng/unofored.hxx              |  48 +++---
 main/editeng/inc/editeng/unoforou.hxx              |  56 +++----
 main/editeng/inc/editeng/unotext.hxx               |  58 +++----
 .../accessibility/AccessibleEditableTextPara.cxx   | 119 +++++++-------
 .../source/accessibility/AccessibleHyperlink.cxx   |   2 +-
 .../source/accessibility/AccessibleHyperlink.hxx   |   6 +-
 .../source/accessibility/AccessibleImageBullet.cxx |   6 +-
 .../accessibility/AccessibleStaticTextBase.cxx     |  12 +-
 main/editeng/source/editeng/baselist.hxx           |  51 ++++++
 main/editeng/source/editeng/editdbg.cxx            |   2 +-
 main/editeng/source/editeng/editdoc.cxx            |  24 ++-
 main/editeng/source/editeng/editdoc.hxx            |  41 +++--
 main/editeng/source/editeng/editdoc2.cxx           |  28 ++--
 main/editeng/source/editeng/editeng.cxx            | 136 ++++++++--------
 main/editeng/source/editeng/editobj.cxx            | 105 ++++++------
 main/editeng/source/editeng/editobj2.hxx           |  24 +--
 main/editeng/source/editeng/editundo.cxx           |  20 +--
 main/editeng/source/editeng/editundo.hxx           |  24 +--
 main/editeng/source/editeng/editview.cxx           |  29 ++--
 main/editeng/source/editeng/edtspell.cxx           |   6 +-
 main/editeng/source/editeng/eehtml.cxx             |  10 +-
 main/editeng/source/editeng/eertfpar.cxx           |  18 +--
 main/editeng/source/editeng/impedit.cxx            |  37 ++---
 main/editeng/source/editeng/impedit.hxx            |  86 +++++-----
 main/editeng/source/editeng/impedit2.cxx           | 156 +++++++++---------
 main/editeng/source/editeng/impedit3.cxx           |  60 +++----
 main/editeng/source/editeng/impedit4.cxx           |  48 +++---
 main/editeng/source/editeng/impedit5.cxx           |  52 +++---
 main/editeng/source/outliner/outleeng.cxx          |  30 ++--
 main/editeng/source/outliner/outleeng.hxx          |  24 +--
 main/editeng/source/outliner/outlin2.cxx           |  24 +--
 main/editeng/source/outliner/outliner.cxx          | 178 ++++++++++-----------
 main/editeng/source/outliner/outlobj.cxx           |   2 +-
 main/editeng/source/outliner/outlundo.cxx          |  14 +-
 main/editeng/source/outliner/outlundo.hxx          |  20 +--
 main/editeng/source/outliner/outlvw.cxx            | 132 ++++++++-------
 main/editeng/source/uno/unoedhlp.cxx               |  22 +--
 main/editeng/source/uno/unoedprx.cxx               |  72 ++++-----
 main/editeng/source/uno/unofored.cxx               |  52 +++---
 main/editeng/source/uno/unoforou.cxx               |  68 ++++----
 main/editeng/source/uno/unotext.cxx                |  96 +++++------
 main/editeng/source/uno/unotext2.cxx               |   4 +-
 main/filter/source/msfilter/msdffimp.cxx           |   6 +-
 main/filter/source/msfilter/svdfppt.cxx            |   2 +-
 main/filter/source/xsltdialog/xmlfileview.cxx      |  18 +--
 main/filter/source/xsltdialog/xmlfileview.hxx      |   8 +-
 main/forms/source/richtext/specialdispatchers.cxx  |   4 +-
 main/sc/inc/editutil.hxx                           |   6 +-
 main/sc/source/core/data/attrib.cxx                |  10 +-
 main/sc/source/core/data/cell.cxx                  |   2 +-
 main/sc/source/core/data/column2.cxx               |   4 +-
 main/sc/source/core/data/documen8.cxx              |   2 +-
 main/sc/source/core/data/global.cxx                |   4 +-
 main/sc/source/core/data/postit.cxx                |   2 +-
 main/sc/source/core/tool/editutil.cxx              |  22 +--
 main/sc/source/filter/excel/xehelper.cxx           |   8 +-
 main/sc/source/filter/excel/xicontent.cxx          |   4 +-
 main/sc/source/filter/html/htmlexp.cxx             |   4 +-
 main/sc/source/ui/app/inputhdl.cxx                 |  42 ++---
 main/sc/source/ui/app/transobj.cxx                 |   2 +-
 main/sc/source/ui/docshell/docfunc.cxx             |   8 +-
 main/sc/source/ui/drawfunc/drtxtob.cxx             |   6 +-
 main/sc/source/ui/pagedlg/tphfedit.cxx             |   4 +-
 main/sc/source/ui/unoobj/fielduno.cxx              |  16 +-
 main/sc/source/ui/view/editsh.cxx                  |   2 +-
 main/sc/source/ui/view/output2.cxx                 |   4 +-
 main/sc/source/ui/view/viewdata.cxx                |   2 +-
 main/sc/source/ui/view/viewfun4.cxx                |   4 +-
 main/sc/source/ui/view/viewfunc.cxx                |   2 +-
 main/sd/source/filter/html/htmlex.cxx              |   8 +-
 main/sd/source/filter/ppt/pptinanimations.cxx      |   4 +-
 main/sd/source/filter/xml/sdtransform.cxx          |   2 +-
 .../accessibility/AccessibleDocumentViewBase.cxx   |   2 +-
 .../sd/source/ui/annotations/annotationmanager.cxx |   2 +-
 main/sd/source/ui/annotations/annotationwindow.cxx |   4 +-
 main/sd/source/ui/dlg/dlgassim.cxx                 |   2 +-
 main/sd/source/ui/dlg/headerfooterdlg.cxx          |   8 +-
 main/sd/source/ui/func/fuexpand.cxx                |   6 +-
 main/sd/source/ui/func/fuinsfil.cxx                |   2 +-
 main/sd/source/ui/func/fuprobjs.cxx                |   4 +-
 main/sd/source/ui/func/fusumry.cxx                 |   2 +-
 main/sd/source/ui/notes/EditWindow.cxx             |   7 +-
 main/sd/source/ui/unoidl/unosrch.cxx               |   4 +-
 main/sd/source/ui/view/DocumentRenderer.cxx        |   2 +-
 main/sd/source/ui/view/Outliner.cxx                |   2 +-
 main/sd/source/ui/view/drawview.cxx                |   4 +-
 main/sd/source/ui/view/drtxtob.cxx                 |   4 +-
 main/sd/source/ui/view/drtxtob1.cxx                |   4 +-
 main/sd/source/ui/view/outlnvs2.cxx                |   2 +-
 main/sd/source/ui/view/outlnvsh.cxx                |   8 +-
 main/sd/source/ui/view/outlview.cxx                |  20 +--
 main/sd/source/ui/view/sdview.cxx                  |   8 +-
 main/sd/source/ui/view/sdview2.cxx                 |  10 +-
 main/starmath/source/accessibility.cxx             |  52 +++---
 main/starmath/source/accessibility.hxx             |  48 +++---
 main/starmath/source/edit.cxx                      |   5 +-
 main/svx/inc/svx/svdomeas.hxx                      |   2 +-
 main/svx/inc/svx/svdotext.hxx                      |   2 +-
 main/svx/inc/svx/svdoutl.hxx                       |   2 +-
 .../accessibility/AccessibleEmptyEditSource.cxx    |  48 +++---
 .../source/accessibility/AccessibleTextHelper.cxx  |   6 +-
 .../customshapes/EnhancedCustomShapeFontWork.cxx   |   4 +-
 main/svx/source/sdr/properties/textproperties.cxx  |  18 +--
 main/svx/source/svdraw/svdedxv.cxx                 |  14 +-
 main/svx/source/svdraw/svdomeas.cxx                |   2 +-
 main/svx/source/svdraw/svdotext.cxx                |   2 +-
 main/svx/source/svdraw/svdotxat.cxx                |   6 +-
 main/svx/source/svdraw/svdotxed.cxx                |   2 +-
 main/svx/source/svdraw/svdotxfl.cxx                |   2 +-
 main/svx/source/svdraw/svdoutl.cxx                 |   2 +-
 main/svx/source/svdraw/svdview.cxx                 |   4 +-
 main/svx/source/table/cell.cxx                     |   4 +-
 main/svx/source/table/svdotable.cxx                |   2 +-
 main/svx/workben/edittest.cxx                      |  12 +-
 main/sw/source/filter/ww8/rtfsdrexport.cxx         |   4 +-
 main/sw/source/filter/ww8/wrtw8esh.cxx             |   4 +-
 main/sw/source/filter/ww8/ww8graf.cxx              |   6 +-
 main/sw/source/ui/docvw/AnnotationWin.cxx          |   4 +-
 main/sw/source/ui/docvw/PostItMgr.cxx              |   2 +-
 main/sw/source/ui/docvw/SidebarWin.cxx             |   2 +-
 main/sw/source/ui/docvw/srcedtw.cxx                |  23 ++-
 main/sw/source/ui/inc/srcedtw.hxx                  |  10 +-
 main/sw/source/ui/shells/annotsh.cxx               |   2 +-
 main/sw/source/ui/shells/drwtxtsh.cxx              |   2 +-
 main/sw/source/ui/uiview/srcview.cxx               |   4 +-
 main/sw/source/ui/uno/unotxdoc.cxx                 |   4 +-
 136 files changed, 1550 insertions(+), 1493 deletions(-)

diff --git a/main/chart2/source/view/axes/VCartesianAxis.cxx b/main/chart2/source/view/axes/VCartesianAxis.cxx
index 7b4f7dbb51..addac858fc 100644
--- a/main/chart2/source/view/axes/VCartesianAxis.cxx
+++ b/main/chart2/source/view/axes/VCartesianAxis.cxx
@@ -330,8 +330,8 @@ bool lcl_hasWordBreak( const Reference< drawing::XShape >& rxShape )
                 SvxTextForwarder* pTextForwarder = pTextEditSource->GetTextForwarder();
                 if ( pTextForwarder )
                 {
-                    sal_uInt16 nParaCount = pTextForwarder->GetParagraphCount();
-                    for ( sal_uInt16 nPara = 0; nPara < nParaCount; ++nPara )
+                    sal_uInt32 nParaCount = pTextForwarder->GetParagraphCount();
+                    for ( sal_uInt32 nPara = 0; nPara < nParaCount; ++nPara )
                     {
                         sal_uInt16 nLineCount = pTextForwarder->GetLineCount( nPara );
                         for ( sal_uInt16 nLine = 0; nLine < nLineCount; ++nLine )
diff --git a/main/editeng/inc/editeng/editdata.hxx b/main/editeng/inc/editeng/editdata.hxx
index 2331741b08..ce957a3c2b 100644
--- a/main/editeng/inc/editeng/editdata.hxx
+++ b/main/editeng/inc/editeng/editdata.hxx
@@ -46,11 +46,13 @@ enum EVAnchorMode		{
 			ANCHOR_TOP_HCENTER,	ANCHOR_VCENTER_HCENTER,	ANCHOR_BOTTOM_HCENTER,
 			ANCHOR_TOP_RIGHT,	ANCHOR_VCENTER_RIGHT,	ANCHOR_BOTTOM_RIGHT };
 
-#define EE_PARA_NOT_FOUND		0xFFFF
-#define EE_PARA_APPEND			0xFFFF
-#define EE_PARA_ALL				0xFFFF
+#define EE_PARA_NOT_FOUND		0xFFFFFFFF
+#define EE_PARA_MAX				0xFFFFFFFF
+#define EE_PARA_APPEND			0xFFFFFFFF
+#define EE_PARA_ALL				0xFFFFFFFF
 #define EE_APPEND				0xFFFF
 #define EE_INDEX_NOT_FOUND		0xFFFF
+#define EE_INDEX_MAX			0xFFFF
 
 // Fehlermeldungen fuer Read/Write-Methode
 #define EE_READWRITE_OK				 (SVSTREAM_OK)
@@ -105,7 +107,7 @@ class SfxStyleSheet;
 
 struct EPosition
 {
-	sal_uInt16		nPara;
+	sal_uInt32		nPara;
 	xub_StrLen	nIndex;
 
     EPosition() :
@@ -114,7 +116,7 @@ struct EPosition
 	{
 	}
 
-    EPosition( sal_uInt16 nPara_, xub_StrLen nPos_ ) :
+    EPosition( sal_uInt32 nPara_, xub_StrLen nPos_ ) :
         nPara( nPara_ ),
         nIndex( nPos_ )
 	{
@@ -123,14 +125,14 @@ struct EPosition
 
 struct ESelection
 {
-	sal_uInt16		nStartPara;
+	sal_uInt32		nStartPara;
 	xub_StrLen	nStartPos;
-	sal_uInt16		nEndPara;
+	sal_uInt32		nEndPara;
 	xub_StrLen	nEndPos;
 
     ESelection() : nStartPara( 0 ), nStartPos( 0 ), nEndPara( 0 ), nEndPos( 0 ) {}
 
-    ESelection( sal_uInt16 nStPara, xub_StrLen nStPos, sal_uInt16 nEPara, xub_StrLen nEPos ) :
+    ESelection( sal_uInt32 nStPara, xub_StrLen nStPos, sal_uInt32 nEPara, xub_StrLen nEPos ) :
         nStartPara( nStPara ),
         nStartPos( nStPos ),
         nEndPara( nEPara ),
@@ -138,7 +140,7 @@ struct ESelection
 	{
 	}
 
-    ESelection( sal_uInt16 nPara, xub_StrLen nPos ) :
+    ESelection( sal_uInt32 nPara, xub_StrLen nPos ) :
         nStartPara( nPara ),
         nStartPos( nPos ),
         nEndPara( nPara ),
@@ -207,7 +209,7 @@ inline void ESelection::Adjust()
 
 	if ( bSwap )
 	{
-		sal_uInt16 nSPar = nStartPara; sal_uInt16 nSPos = nStartPos;
+		sal_uInt32 nSPar = nStartPara; sal_uInt16 nSPos = nStartPos;
 		nStartPara = nEndPara; nStartPos = nEndPos;
 		nEndPara = nSPar; nEndPos = nSPos;
 	}
@@ -220,7 +222,7 @@ struct EDITENG_DLLPUBLIC EFieldInfo
     EPosition       aPosition;
 
     EFieldInfo();
-    EFieldInfo( const SvxFieldItem& rFieldItem, sal_uInt16 nPara, sal_uInt16 nPos );
+    EFieldInfo( const SvxFieldItem& rFieldItem, sal_uInt32 nPara, sal_uInt16 nPos );
     ~EFieldInfo();
 
     EFieldInfo( const EFieldInfo& );
@@ -295,7 +297,7 @@ struct EECharAttrib
 {
 	const SfxPoolItem*	pAttr;
 
-	sal_uInt16				nPara;
+	sal_uInt32				nPara;
 	xub_StrLen			nStart;
 	xub_StrLen			nEnd;
 };
@@ -304,11 +306,11 @@ SV_DECL_VARARR_VISIBILITY( EECharAttribArray, EECharAttrib, 0, 4, EDITENG_DLLPUB
 
 struct MoveParagraphsInfo
 {
-    sal_uInt16  nStartPara;
-    sal_uInt16  nEndPara;
-    sal_uInt16  nDestPara;
+    sal_uInt32  nStartPara;
+    sal_uInt32  nEndPara;
+    sal_uInt32  nDestPara;
 
-    MoveParagraphsInfo( sal_uInt16 nS, sal_uInt16 nE, sal_uInt16 nD )
+    MoveParagraphsInfo( sal_uInt32 nS, sal_uInt32 nE, sal_uInt32 nD )
         { nStartPara = nS; nEndPara = nE; nDestPara = nD; }
 };
 
@@ -318,10 +320,10 @@ struct MoveParagraphsInfo
 struct PasteOrDropInfos
 {
     sal_uInt16  nAction;
-    sal_uInt16  nStartPara;
-    sal_uInt16  nEndPara;
+    sal_uInt32  nStartPara;
+    sal_uInt32  nEndPara;
 
-    PasteOrDropInfos() : nAction(0), nStartPara(0xFFFF), nEndPara(0xFFFF)  {}
+    PasteOrDropInfos() : nAction(0), nStartPara(EE_PARA_MAX), nEndPara(EE_PARA_MAX)  {}
 };
 
 enum EENotifyType
@@ -373,10 +375,10 @@ struct EENotify
     EditEngine*     pEditEngine;
     EditView*       pEditView;
 
-    sal_uInt16          nParagraph; // only valid in PARAGRAPHINSERTED/EE_NOTIFY_PARAGRAPHREMOVED
+    sal_uInt32          nParagraph; // only valid in PARAGRAPHINSERTED/EE_NOTIFY_PARAGRAPHREMOVED
 
-    sal_uInt16          nParam1;
-    sal_uInt16          nParam2;
+    sal_uInt32          nParam1;
+    sal_uInt32          nParam2;
 
     EENotify( EENotifyType eType )
         { eNotificationType = eType; pEditEngine = NULL; pEditView = NULL; nParagraph = EE_PARA_NOT_FOUND; nParam1 = 0; nParam2 = 0; }
diff --git a/main/editeng/inc/editeng/editeng.hxx b/main/editeng/inc/editeng/editeng.hxx
index fcf9e2801c..82180a1fed 100644
--- a/main/editeng/inc/editeng/editeng.hxx
+++ b/main/editeng/inc/editeng/editeng.hxx
@@ -180,7 +180,7 @@ public:
     EEHorizontalTextDirection   GetDefaultHorizontalTextDirection() const;
 
 	sal_uInt16			GetScriptType( const ESelection& rSelection ) const;
-    LanguageType    GetLanguage( sal_uInt16 nPara, sal_uInt16 nPos ) const;
+    LanguageType    GetLanguage( sal_uInt32 nPara, sal_uInt16 nPos ) const;
 
 	void 			TransliterateText( const ESelection& rSelection, sal_Int32 nTransliterationMode );
 
@@ -210,24 +210,24 @@ public:
 	sal_uInt32		GetTextHeight() const;
 	sal_uInt32		CalcTextWidth();
 
-	String 			GetText( sal_uInt16 nParagraph ) const;
-	xub_StrLen		GetTextLen( sal_uInt16 nParagraph ) const;
-	sal_uInt32		GetTextHeight( sal_uInt16 nParagraph ) const;
+	String 			GetText( sal_uInt32 nParagraph ) const;
+	xub_StrLen		GetTextLen( sal_uInt32 nParagraph ) const;
+	sal_uInt32		GetTextHeight( sal_uInt32 nParagraph ) const;
 
-	sal_uInt16 			GetParagraphCount() const;
+	sal_uInt32 			GetParagraphCount() const;
 
-	sal_uInt16			GetLineCount( sal_uInt16 nParagraph ) const;
-	xub_StrLen		GetLineLen( sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
-    void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
-    sal_uInt16          GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
-	sal_uInt32		GetLineHeight( sal_uInt16 nParagraph, sal_uInt16 nLine = 0 );
-	sal_uInt16			GetFirstLineOffset( sal_uInt16 nParagraph );
-	ParagraphInfos 	GetParagraphInfos( sal_uInt16 nPara );
-	sal_uInt16			FindParagraph( long nDocPosY );
+	sal_uInt16			GetLineCount( sal_uInt32 nParagraph ) const;
+	xub_StrLen		GetLineLen( sal_uInt32 nParagraph, sal_uInt16 nLine ) const;
+    void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nParagraph, sal_uInt16 nLine ) const;
+    sal_uInt16          GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
+	sal_uInt32		GetLineHeight( sal_uInt32 nParagraph, sal_uInt16 nLine = 0 );
+	sal_uInt16			GetFirstLineOffset( sal_uInt32 nParagraph );
+	ParagraphInfos 	GetParagraphInfos( sal_uInt32 nPara );
+	sal_uInt32			FindParagraph( long nDocPosY );
     EPosition       FindDocPosition( const Point& rDocPos ) const;
     Rectangle       GetCharacterBounds( const EPosition& rPos ) const;
 
-	String			GetWord( sal_uInt16 nPara, xub_StrLen nIndex );
+	String			GetWord( sal_uInt32 nPara, xub_StrLen nIndex );
 
     ESelection      GetWord( const ESelection& rSelection, sal_uInt16 nWordType ) const;
     ESelection      WordLeft( const ESelection& rSelection, sal_uInt16 nWordType  ) const;
@@ -240,35 +240,35 @@ public:
 	void			SetText( const String& rStr );
 
 	EditTextObject*	CreateTextObject();
-	EditTextObject*	CreateTextObject( sal_uInt16 nPara, sal_uInt16 nParas = 1 );
+	EditTextObject*	CreateTextObject( sal_uInt32 nPara, sal_uInt32 nParas = 1 );
 	EditTextObject*	CreateTextObject( const ESelection& rESelection );
 	void			SetText( const EditTextObject& rTextObject );
 
-	void			RemoveParagraph( sal_uInt16 nPara );
-	void			InsertParagraph( sal_uInt16 nPara, const EditTextObject& rTxtObj );
-	void			InsertParagraph( sal_uInt16 nPara, const String& rText);
+	void			RemoveParagraph( sal_uInt32 nPara );
+	void			InsertParagraph( sal_uInt32 nPara, const EditTextObject& rTxtObj );
+	void			InsertParagraph( sal_uInt32 nPara, const String& rText);
 
-	void			SetText( sal_uInt16 nPara, const EditTextObject& rTxtObj );
-	void			SetText( sal_uInt16 nPara, const String& rText);
+	void			SetText( sal_uInt32 nPara, const EditTextObject& rTxtObj );
+	void			SetText( sal_uInt32 nPara, const String& rText);
 
-	virtual void                SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet );
-	virtual const SfxItemSet&	GetParaAttribs( sal_uInt16 nPara ) const;
+	virtual void                SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet );
+	virtual const SfxItemSet&	GetParaAttribs( sal_uInt32 nPara ) const;
 
-	void				GetCharAttribs( sal_uInt16 nPara, EECharAttribArray& rLst ) const;
+	void				GetCharAttribs( sal_uInt32 nPara, EECharAttribArray& rLst ) const;
 
-	SfxItemSet          GetAttribs( sal_uInt16 nPara, sal_uInt16 nStart, sal_uInt16 nEnd, sal_uInt8 nFlags = 0xFF ) const;
+	SfxItemSet          GetAttribs( sal_uInt32 nPara, sal_uInt16 nStart, sal_uInt16 nEnd, sal_uInt8 nFlags = 0xFF ) const;
     SfxItemSet			GetAttribs( const ESelection& rSel, sal_Bool bOnlyHardAttrib = EditEngineAttribs_All );
 
-	sal_Bool				HasParaAttrib( sal_uInt16 nPara, sal_uInt16 nWhich ) const;
-	const SfxPoolItem&	GetParaAttrib( sal_uInt16 nPara, sal_uInt16 nWhich );
+	sal_Bool				HasParaAttrib( sal_uInt32 nPara, sal_uInt16 nWhich ) const;
+	const SfxPoolItem&	GetParaAttrib( sal_uInt32 nPara, sal_uInt16 nWhich );
 
-	Font			GetStandardFont( sal_uInt16 nPara );
-	SvxFont			GetStandardSvxFont( sal_uInt16 nPara );
+	Font			GetStandardFont( sal_uInt32 nPara );
+	SvxFont			GetStandardSvxFont( sal_uInt32 nPara );
 
     void            RemoveAttribs( const ESelection& rSelection, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich );
 
-	void			ShowParagraph( sal_uInt16 nParagraph, sal_Bool bShow = sal_True );
-	sal_Bool			IsParagraphVisible( sal_uInt16 nParagraph );
+	void			ShowParagraph( sal_uInt32 nParagraph, sal_Bool bShow = sal_True );
+	sal_Bool			IsParagraphVisible( sal_uInt32 nParagraph );
 
     ::svl::IUndoManager& GetUndoManager();
     ::svl::IUndoManager* SetUndoManager(::svl::IUndoManager* pNew);
@@ -295,10 +295,10 @@ public:
 	void			StopSelectionMode();
 
 	void			StripPortions();
-	void			GetPortions( sal_uInt16 nPara, SvUShorts& rList );
+	void			GetPortions( sal_uInt32 nPara, SvUShorts& rList );
 
-	long 			GetFirstLineStartX( sal_uInt16 nParagraph );
-	Point			GetDocPosTopLeft( sal_uInt16 nParagraph );
+	long 			GetFirstLineStartX( sal_uInt32 nParagraph );
+	Point			GetDocPosTopLeft( sal_uInt32 nParagraph );
 	Point			GetDocPos( const Point& rPaperPos ) const;
 	sal_Bool			IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder = 0 );
 
@@ -329,14 +329,14 @@ public:
 	sal_uInt32		GetControlWord() const;
 
 	void			QuickSetAttribs( const SfxItemSet& rSet, const ESelection& rSel );
-	void 			QuickRemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich = 0 );
+	void 			QuickRemoveCharAttribs( sal_uInt32 nPara, sal_uInt16 nWhich = 0 );
 	void			QuickMarkInvalid( const ESelection& rSel );
 	void 			QuickFormatDoc( sal_Bool bFull = sal_False );
 	void 			QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel );
 	void 			QuickInsertLineBreak( const ESelection& rSel );
 	void			QuickInsertText( const String& rText, const ESelection& rSel );
 	void			QuickDelete( const ESelection& rSel );
-	void			QuickMarkToBeRepainted( sal_uInt16 nPara );
+	void			QuickMarkToBeRepainted( sal_uInt32 nPara );
 
 	void			SetGlobalCharStretching( sal_uInt16 nX = 100, sal_uInt16 nY = 100 );
 	void			GetGlobalCharStretching( sal_uInt16& rX, sal_uInt16& rY );
@@ -348,8 +348,8 @@ public:
 	void				SetStyleSheetPool( SfxStyleSheetPool* pSPool );
 	SfxStyleSheetPool*	GetStyleSheetPool();
 
-	void				SetStyleSheet( sal_uInt16 nPara, SfxStyleSheet* pStyle );
-	SfxStyleSheet*		GetStyleSheet( sal_uInt16 nPara ) const;
+	void				SetStyleSheet( sal_uInt32 nPara, SfxStyleSheet* pStyle );
+	SfxStyleSheet*		GetStyleSheet( sal_uInt32 nPara ) const;
 
 	void			SetWordDelimiters( const String& rDelimiters );
 	String			GetWordDelimiters() const;
@@ -411,10 +411,10 @@ public:
 	sal_Bool			UpdateFields();
 	void 			RemoveFields( sal_Bool bKeepFieldText, TypeId aType = NULL );
 
-    sal_uInt16          GetFieldCount( sal_uInt16 nPara ) const;
-    EFieldInfo      GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const;
+    sal_uInt16          GetFieldCount( sal_uInt32 nPara ) const;
+    EFieldInfo      GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const;
 
-    sal_Bool            IsRightToLeft( sal_uInt16 nPara ) const;
+    sal_Bool            IsRightToLeft( sal_uInt32 nPara ) const;
 
     ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XTransferable >
     				CreateTransferable( const ESelection& rSelection ) const;
@@ -425,18 +425,18 @@ public:
     void            SetBeginPasteOrDropHdl( const Link& rLink );
     void            SetEndPasteOrDropHdl( const Link& rLink );
 
-	virtual void	PaintingFirstLine( sal_uInt16 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev );
-	virtual	void	ParagraphInserted( sal_uInt16 nNewParagraph );
-	virtual	void	ParagraphDeleted( sal_uInt16 nDeletedParagraph );
-    virtual void    ParagraphConnected( sal_uInt16 nLeftParagraph, sal_uInt16 nRightParagraph );
-	virtual	void	ParaAttribsChanged( sal_uInt16 nParagraph );
+	virtual void	PaintingFirstLine( sal_uInt32 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev );
+	virtual	void	ParagraphInserted( sal_uInt32 nNewParagraph );
+	virtual	void	ParagraphDeleted( sal_uInt32 nDeletedParagraph );
+    virtual void    ParagraphConnected( sal_uInt32 nLeftParagraph, sal_uInt32 nRightParagraph );
+	virtual	void	ParaAttribsChanged( sal_uInt32 nParagraph );
 	virtual	void	StyleSheetChanged( SfxStyleSheet* pStyle );
-	virtual	void	ParagraphHeightChanged( sal_uInt16 nPara );
+	virtual	void	ParagraphHeightChanged( sal_uInt32 nPara );
 
 	// #101498#
 	virtual void DrawingText(
         const Point& rStartPos, const String& rText, sal_uInt16 nTextStart, sal_uInt16 nTextLen, const sal_Int32* pDXArray,
-        const SvxFont& rFont, sal_uInt16 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft,
+        const SvxFont& rFont, sal_uInt32 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft,
         const EEngineData::WrongSpellVector* pWrongSpellVector,
         const SvxFieldData* pFieldData,
         bool bEndOfLine,
@@ -447,16 +447,16 @@ public:
         const Color& rTextLineColor);
 
 	virtual String	GetUndoComment( sal_uInt16 nUndoId ) const;
-	virtual sal_Bool	FormattingParagraph( sal_uInt16 nPara );
+	virtual sal_Bool	FormattingParagraph( sal_uInt32 nPara );
 	virtual sal_Bool	SpellNextDocument();
-	virtual void 	FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos );
-	virtual void	FieldSelected( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos );
-	virtual String	CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos, Color*& rTxtColor, Color*& rFldColor );
+	virtual void 	FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos );
+	virtual void	FieldSelected( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos );
+	virtual String	CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos, Color*& rTxtColor, Color*& rFldColor );
 
     // to be overloaded if access to bullet information needs to be provided
-    virtual const SvxNumberFormat * GetNumberFormat( sal_uInt16 nPara ) const;
+    virtual const SvxNumberFormat * GetNumberFormat( sal_uInt32 nPara ) const;
 
-    virtual Rectangle GetBulletArea( sal_uInt16 nPara );
+    virtual Rectangle GetBulletArea( sal_uInt32 nPara );
 
 	static SfxItemPool*	CreatePool( sal_Bool bLoadRefCounts = sal_True );
 	static SfxItemPool&	GetGlobalItemPool();
diff --git a/main/editeng/inc/editeng/editobj.hxx b/main/editeng/inc/editeng/editobj.hxx
index d0970a4d96..65609b154d 100644
--- a/main/editeng/inc/editeng/editobj.hxx
+++ b/main/editeng/inc/editeng/editobj.hxx
@@ -79,12 +79,12 @@ public:
 								SfxItemPool* pGlobalTextObjectPool = 0 );
 	void					Skip( SvStream& rIStream );
 
-    virtual sal_uInt16		GetParagraphCount() const;
+    virtual sal_uInt32		GetParagraphCount() const;
 
-	virtual XubString	GetText( sal_uInt16 nParagraph ) const;
-	virtual void		Insert( const EditTextObject& rObj, sal_uInt16 nPara );
-	virtual void		RemoveParagraph( sal_uInt16 nPara );
-	virtual EditTextObject*	CreateTextObject( sal_uInt16 nPara, sal_uInt16 nParas = 1 ) const;
+	virtual XubString	GetText( sal_uInt32 nParagraph ) const;
+	virtual void		Insert( const EditTextObject& rObj, sal_uInt32 nPara );
+	virtual void		RemoveParagraph( sal_uInt32 nPara );
+	virtual EditTextObject*	CreateTextObject( sal_uInt32 nPara, sal_uInt32 nParas = 1 ) const;
 
 	virtual sal_Bool		HasPortionInfo() const;
 	virtual void		ClearPortionInfo();
@@ -92,7 +92,7 @@ public:
 	virtual sal_Bool		HasOnlineSpellErrors() const;
 
 	virtual sal_Bool		HasCharAttribs( sal_uInt16 nWhich = 0 ) const;
-	virtual	void		GetCharAttribs( sal_uInt16 nPara, EECharAttribArray& rLst ) const;
+	virtual	void		GetCharAttribs( sal_uInt32 nPara, EECharAttribArray& rLst ) const;
 
 	virtual sal_Bool		RemoveCharAttribs( sal_uInt16 nWhich = 0 );
 	virtual sal_Bool		RemoveParaAttribs( sal_uInt16 nWhich = 0 );
@@ -103,12 +103,12 @@ public:
 	virtual const SvxFieldItem*	GetField() const;
 	virtual sal_Bool		HasField( TypeId aType = NULL ) const;
 
-	virtual SfxItemSet	GetParaAttribs( sal_uInt16 nPara ) const;
-	virtual void		SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rAttribs );
+	virtual SfxItemSet	GetParaAttribs( sal_uInt32 nPara ) const;
+	virtual void		SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rAttribs );
 
 	virtual sal_Bool		HasStyleSheet( const XubString& rName, SfxStyleFamily eFamily ) const;
-	virtual void		GetStyleSheet( sal_uInt16 nPara, XubString& rName, SfxStyleFamily& eFamily ) const;
-	virtual void		SetStyleSheet( sal_uInt16 nPara, const XubString& rName, const SfxStyleFamily& eFamily );
+	virtual void		GetStyleSheet( sal_uInt32 nPara, XubString& rName, SfxStyleFamily& eFamily ) const;
+	virtual void		SetStyleSheet( sal_uInt32 nPara, const XubString& rName, const SfxStyleFamily& eFamily );
 	virtual sal_Bool		ChangeStyleSheets( 	const XubString& rOldName, SfxStyleFamily eOldFamily,
 											const XubString& rNewName, SfxStyleFamily eNewFamily );
 	virtual void		ChangeStyleSheetName( SfxStyleFamily eFamily, const XubString& rOldName, const XubString& rNewName );
diff --git a/main/editeng/inc/editeng/editview.hxx b/main/editeng/inc/editeng/editview.hxx
index 521358b86b..9e90a0b02d 100644
--- a/main/editeng/inc/editeng/editview.hxx
+++ b/main/editeng/inc/editeng/editview.hxx
@@ -165,17 +165,17 @@ public:
 	void			Redo();
 
 	// speziell fuer Olli
-	sal_uInt16			GetParagraph( const Point& rMousePosPixel );
-	Point			GetWindowPosTopLeft( sal_uInt16 nParagraph );
-	void			MoveParagraphs( Range aParagraphs, sal_uInt16 nNewPos );
+	sal_uInt32			GetParagraph( const Point& rMousePosPixel );
+	Point			GetWindowPosTopLeft( sal_uInt32 nParagraph );
+	void			MoveParagraphs( Range aParagraphs, sal_uInt32 nNewPos );
     void            MoveParagraphs( long nDiff );
 
 	const SfxItemSet& 	GetEmptyItemSet();
 	SfxItemSet			GetAttribs();
 	void				SetAttribs( const SfxItemSet& rSet );
-	void				SetParaAttribs( const SfxItemSet& rSet, sal_uInt16 nPara );
+	void				SetParaAttribs( const SfxItemSet& rSet, sal_uInt32 nPara );
     void                RemoveAttribs( sal_Bool bRemoveParaAttribs = sal_False, sal_uInt16 nWhich = 0 );
-	void 				RemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich = 0 );
+	void 				RemoveCharAttribs( sal_uInt32 nPara, sal_uInt16 nWhich = 0 );
     void                RemoveAttribsKeepLanguages( sal_Bool bRemoveParaAttribs = sal_False );
 
     sal_uLong           Read( SvStream& rInput, const String& rBaseURL, EETextFormat eFormat, sal_Bool bSelect = sal_False, SvKeyValueIterator* pHTTPHeaderAttrs = NULL );
@@ -226,8 +226,8 @@ public:
 
 	void 				InsertField( const SvxFieldItem& rFld );
 	const SvxFieldItem*	GetFieldUnderMousePointer() const;
-	const SvxFieldItem*	GetFieldUnderMousePointer( sal_uInt16& nPara, xub_StrLen& nPos ) const;
-	const SvxFieldItem*	GetField( const Point& rPos, sal_uInt16* pnPara = NULL, xub_StrLen* pnPos = NULL ) const;
+	const SvxFieldItem*	GetFieldUnderMousePointer( sal_uInt32& nPara, xub_StrLen& nPos ) const;
+	const SvxFieldItem*	GetField( const Point& rPos, sal_uInt32* pnPara = NULL, xub_StrLen* pnPos = NULL ) const;
 
 	const SvxFieldItem*	GetFieldAtSelection() const;
 
diff --git a/main/editeng/inc/editeng/outliner.hxx b/main/editeng/inc/editeng/outliner.hxx
index 2d8f86b489..4d6ae75da1 100644
--- a/main/editeng/inc/editeng/outliner.hxx
+++ b/main/editeng/inc/editeng/outliner.hxx
@@ -163,20 +163,20 @@ private:
 
 struct ParaRange
 {
-	sal_uInt16 	nStartPara;
-	sal_uInt16 	nEndPara;
+	sal_uInt32 	nStartPara;
+	sal_uInt32 	nEndPara;
 
-			ParaRange( sal_uInt16 nS, sal_uInt16 nE ) { nStartPara = nS, nEndPara = nE; }
+			ParaRange( sal_uInt32 nS, sal_uInt32 nE ) { nStartPara = nS, nEndPara = nE; }
 
 	void 	Adjust();
-	sal_uInt16	Len() const { return 1 + ( ( nEndPara > nStartPara ) ? (nEndPara-nStartPara) : (nStartPara-nEndPara) ); }
+	sal_uInt32	Len() const { return 1 + ( ( nEndPara > nStartPara ) ? (nEndPara-nStartPara) : (nStartPara-nEndPara) ); }
 };
 
 inline void ParaRange::Adjust()
 {
 	if ( nStartPara > nEndPara )
 	{
-		sal_uInt16 nTmp = nStartPara;
+		sal_uInt32 nTmp = nStartPara;
 		nStartPara = nEndPara;
 		nEndPara = nTmp;
 	}
@@ -226,7 +226,7 @@ private:
 
 #ifdef _OUTLINER_CXX
 
-	EDITENG_DLLPRIVATE void 		ImplExpandOrCollaps( sal_uInt16 nStartPara, sal_uInt16 nEndPara, sal_Bool bExpand );
+	EDITENG_DLLPRIVATE void 		ImplExpandOrCollaps( sal_uInt32 nStartPara, sal_uInt32 nEndPara, sal_Bool bExpand );
 
 	EDITENG_DLLPRIVATE sal_uLong       ImpCheckMousePos( const Point& rPosPixel, MouseTarget& reTarget);
 	EDITENG_DLLPRIVATE void        ImpToggleExpand( Paragraph* pParentPara );
@@ -244,8 +244,8 @@ private:
 	EDITENG_DLLPRIVATE sal_uLong       ImpGetInsertionPara( const Point& rPosPixel );
 	EDITENG_DLLPRIVATE Point       ImpGetDocPos( const Point& rPosPixel );
 	EDITENG_DLLPRIVATE Pointer     ImpGetMousePointer( MouseTarget eTarget );
-	EDITENG_DLLPRIVATE sal_uInt16      ImpInitPaste( sal_uLong& rStart );
-	EDITENG_DLLPRIVATE void        ImpPasted( sal_uLong nStart, sal_uLong nPrevParaCount, sal_uInt16 nSize);
+	EDITENG_DLLPRIVATE sal_uInt32      ImpInitPaste( sal_uInt32& rStart );
+	EDITENG_DLLPRIVATE void        ImpPasted( sal_uInt32 nStart, sal_uInt32 nPrevParaCount, sal_uInt32 nSize);
 	EDITENG_DLLPRIVATE sal_uInt16      ImpCalcSelectedPages( sal_Bool bIncludeFirstSelected );
 	EDITENG_DLLPRIVATE sal_Bool        ImpIsIndentingPages();
 
@@ -291,7 +291,7 @@ public:
 					sal_Bool bWChilds=sal_True);
 
 	String      GetSelected() const;
-	void        SelectRange( sal_uLong nFirst, sal_uInt16 nCount );
+	void        SelectRange( sal_uInt32 nFirst, sal_uInt32 nCount );
 	void        SetAttribs( const SfxItemSet& );
 	void 		Indent( short nDiff );
 	void        AdjustDepth( short nDX );	// Spaeter gegeb Indent ersetzen!
@@ -365,7 +365,7 @@ public:
 
 	void                InsertField( const SvxFieldItem& rFld );
 	const SvxFieldItem* GetFieldUnderMousePointer() const;
-	const SvxFieldItem*	GetFieldUnderMousePointer( sal_uInt16& nPara, xub_StrLen& nPos ) const;
+	const SvxFieldItem*	GetFieldUnderMousePointer( sal_uInt32& nPara, xub_StrLen& nPos ) const;
 	const SvxFieldItem* GetFieldAtSelection() const;
 
     /** enables bullets for the selected paragraphs if the bullets/numbering of the first paragraph is off
@@ -442,7 +442,7 @@ public:
     const String&       mrText;
     sal_uInt16          mnTextStart;
     sal_uInt16          mnTextLen;
-    sal_uInt16          mnPara;
+    sal_uInt32          mnPara;
 	xub_StrLen          mnIndex;
     const SvxFont&      mrFont;
     const sal_Int32*    mpDXArray;
@@ -470,7 +470,7 @@ public:
         sal_uInt16 nTxtStart,
         sal_uInt16 nTxtLen,
 		const SvxFont& rFnt,
-        sal_uInt16 nPar,
+        sal_uInt32 nPar,
         xub_StrLen nIdx,
         const sal_Int32* pDXArr,
         const EEngineData::WrongSpellVector* pWrongSpellVector,
@@ -521,14 +521,14 @@ public:
 
 struct EDITENG_DLLPUBLIC PaintFirstLineInfo
 {
-	sal_uInt16 mnPara;
+	sal_uInt32 mnPara;
 	const Point& mrStartPos;
 	long mnBaseLineY;
 	const Point& mrOrigin;
 	short mnOrientation;
 	OutputDevice* mpOutDev;
 
-	PaintFirstLineInfo( sal_uInt16 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev )
+	PaintFirstLineInfo( sal_uInt32 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev )
 		: mnPara( nPara ), mrStartPos( rStartPos ), mnBaseLineY( nBaseLineY ), mrOrigin( rOrigin ), mnOrientation( nOrientation ), mpOutDev( pOutDev )
 	{}
 };
@@ -546,7 +546,7 @@ private:
 
 	String              aRepresentation;
 
-	sal_uInt16              nPara;
+	sal_uInt32              nPara;
 	xub_StrLen			nPos;
 	sal_Bool                bSimpleClick;
 
@@ -556,7 +556,7 @@ private:
 	SdrPage*			mpSdrPage;
 
 public:
-					EditFieldInfo( Outliner* pOutl, const SvxFieldItem& rFItem, sal_uInt16 nPa, xub_StrLen nPo )
+					EditFieldInfo( Outliner* pOutl, const SvxFieldItem& rFItem, sal_uInt32 nPa, xub_StrLen nPo )
 						: rFldItem( rFItem )
 					{
 						pOutliner = pOutl;
@@ -584,7 +584,7 @@ public:
 	void            ClearFldColor()
 						{ delete pFldColor; pFldColor = 0; }
 
-	sal_uInt16          GetPara() const { return nPara; }
+	sal_uInt32          GetPara() const { return nPara; }
 	xub_StrLen          GetPos() const { return nPos; }
 
 	sal_Bool            IsSimpleClick() const { return bSimpleClick; }
@@ -605,7 +605,7 @@ struct EBulletInfo
     String      aText;
     SvxFont		aFont;
     Graphic     aGraphic;
-    sal_uInt16      nParagraph;
+    sal_uInt32      nParagraph;
     Rectangle   aBounds;
 
     EBulletInfo() : bVisible( sal_False ), nType( 0 ), nParagraph( EE_PARA_NOT_FOUND ) {}
@@ -681,29 +681,29 @@ class EDITENG_DLLPUBLIC Outliner : public SfxBroadcaster
 	DECL_LINK( 				EndPasteOrDropHdl, PasteOrDropInfos* );
 	DECL_LINK( 				EditEngineNotifyHdl, EENotify* );
 
-    void ImplCheckParagraphs( sal_uInt16 nStart, sal_uInt16 nEnd );
-    bool ImplHasNumberFormat( sal_uInt16 nPara ) const;
-    Size ImplGetBulletSize( sal_uInt16 nPara );
-    sal_uInt16 ImplGetNumbering( sal_uInt16 nPara, const SvxNumberFormat* pParaFmt );
-    void ImplCalcBulletText( sal_uInt16 nPara, sal_Bool bRecalcLevel, sal_Bool bRecalcChilds );
-    String ImplGetBulletText( sal_uInt16 nPara );
-    void ImplCheckNumBulletItem( sal_uInt16 nPara );
-    void ImplInitDepth( sal_uInt16 nPara, sal_Int16 nDepth, sal_Bool bCreateUndo, sal_Bool bUndoAction = sal_False );
-    void ImplSetLevelDependendStyleSheet( sal_uInt16 nPara, SfxStyleSheet* pLevelStyle = NULL );
+    void ImplCheckParagraphs( sal_uInt32 nStart, sal_uInt32 nEnd );
+    bool ImplHasNumberFormat( sal_uInt32 nPara ) const;
+    Size ImplGetBulletSize( sal_uInt32 nPara );
+    sal_uInt16 ImplGetNumbering( sal_uInt32 nPara, const SvxNumberFormat* pParaFmt );
+    void ImplCalcBulletText( sal_uInt32 nPara, sal_Bool bRecalcLevel, sal_Bool bRecalcChilds );
+    String ImplGetBulletText( sal_uInt32 nPara );
+    void ImplCheckNumBulletItem( sal_uInt32 nPara );
+    void ImplInitDepth( sal_uInt32 nPara, sal_Int16 nDepth, sal_Bool bCreateUndo, sal_Bool bUndoAction = sal_False );
+    void ImplSetLevelDependendStyleSheet( sal_uInt32 nPara, SfxStyleSheet* pLevelStyle = NULL );
 
     void                    ImplBlockInsertionCallbacks( sal_Bool b );
 
-	void 				ImplCheckStyleSheet( sal_uInt16 nPara, sal_Bool bReplaceExistingStyle );
+	void 				ImplCheckStyleSheet( sal_uInt32 nPara, sal_Bool bReplaceExistingStyle );
 	void                ImpRecalcBulletIndent( sal_uLong nPara );
 
 	const SvxBulletItem& ImpGetBullet( sal_uLong nPara, sal_uInt16& );
 	void        ImpFilterIndents( sal_uLong nFirstPara, sal_uLong nLastPara );
 	bool		ImpConvertEdtToOut( sal_uInt32 nPara, EditView* pView = 0 );
 
-	void        ImpTextPasted( sal_uLong nStartPara, sal_uInt16 nCount );
-	long 		ImpCalcMaxBulletWidth( sal_uInt16 nPara, const SvxBulletItem& rBullet );
-	Font        ImpCalcBulletFont( sal_uInt16 nPara ) const;
-	Rectangle   ImpCalcBulletArea( sal_uInt16 nPara, sal_Bool bAdjust, sal_Bool bReturnPaperPos );
+	void        ImpTextPasted( sal_uInt32 nStartPara, sal_uInt32 nCount );
+	long 		ImpCalcMaxBulletWidth( sal_uInt32 nPara, const SvxBulletItem& rBullet );
+	Font        ImpCalcBulletFont( sal_uInt32 nPara ) const;
+	Rectangle   ImpCalcBulletArea( sal_uInt32 nPara, sal_Bool bAdjust, sal_Bool bReturnPaperPos );
 	long 		ImpGetTextIndent( sal_uLong nPara );
 	sal_Bool        ImpCanIndentSelectedPages( OutlinerView* pCurView );
 	sal_Bool        ImpCanDeleteSelectedPages( OutlinerView* pCurView );
@@ -714,20 +714,20 @@ class EDITENG_DLLPUBLIC Outliner : public SfxBroadcaster
 #endif
 
 protected:
-	void        	ParagraphInserted( sal_uInt16 nParagraph );
-	void        	ParagraphDeleted( sal_uInt16 nParagraph );
-	void			ParaAttribsChanged( sal_uInt16 nParagraph );
+	void        	ParagraphInserted( sal_uInt32 nParagraph );
+	void        	ParagraphDeleted( sal_uInt32 nParagraph );
+	void			ParaAttribsChanged( sal_uInt32 nParagraph );
 
 	virtual void 	StyleSheetChanged( SfxStyleSheet* pStyle );
 
 	void        InvalidateBullet( Paragraph* pPara, sal_uLong nPara );
-	void        PaintBullet( sal_uInt16 nPara, const Point& rStartPos,
+	void        PaintBullet( sal_uInt32 nPara, const Point& rStartPos,
 					const Point& rOrigin, short nOrientation,
 					OutputDevice* pOutDev );
 
     // used by OutlinerEditEng. Allows Outliner objects to provide
     // bullet access to the EditEngine.
-    virtual const SvxNumberFormat*  GetNumberFormat( sal_uInt16 nPara ) const;
+    virtual const SvxNumberFormat*  GetNumberFormat( sal_uInt32 nPara ) const;
 
 public:
 
@@ -747,7 +747,7 @@ public:
     EEHorizontalTextDirection   GetDefaultHorizontalTextDirection() const;
 
     sal_uInt16			GetScriptType( const ESelection& rSelection ) const;
-    LanguageType    GetLanguage( sal_uInt16 nPara, sal_uInt16 nPos ) const;
+    LanguageType    GetLanguage( sal_uInt32 nPara, sal_uInt16 nPos ) const;
 
 	void            SetAsianCompressionMode( sal_uInt16 nCompressionMode );
 	sal_uInt16          GetAsianCompressionMode() const;
@@ -770,7 +770,7 @@ public:
 	void            SetText( const String& rText, Paragraph* pParagraph );
 	String          GetText( Paragraph* pPara, sal_uLong nParaCount=1 ) const;
 
-	OutlinerParaObject* CreateParaObject( sal_uInt16 nStartPara = 0, sal_uInt16 nParaCount = 0xFFFF ) const;
+	OutlinerParaObject* CreateParaObject( sal_uInt32 nStartPara = 0, sal_uInt32 nParaCount = EE_PARA_MAX ) const;
 
 	const SfxItemSet& GetEmptyItemSet() const;
 
@@ -909,18 +909,18 @@ public:
     void            ForceAutoColor( sal_Bool b );
     sal_Bool            IsForceAutoColor() const;
 
-    EBulletInfo     GetBulletInfo( sal_uInt16 nPara );
+    EBulletInfo     GetBulletInfo( sal_uInt32 nPara );
 
 	void        SetWordDelimiters( const String& rDelimiters );
 	String      GetWordDelimiters() const;
-	String      GetWord( sal_uInt16 nPara, xub_StrLen nIndex );
+	String      GetWord( sal_uInt32 nPara, xub_StrLen nIndex );
 
 	void            StripPortions();
 
 	// #101498#
 	virtual void DrawingText(
         const Point& rStartPos, const String& rText, sal_uInt16 nTextStart, sal_uInt16 nTextLen,
-		const sal_Int32* pDXArray, const SvxFont& rFont, sal_uInt16 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft,
+		const sal_Int32* pDXArray, const SvxFont& rFont, sal_uInt32 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft,
         const EEngineData::WrongSpellVector* pWrongSpellVector,
         const SvxFieldData* pFieldData,
         bool bEndOfLine,
@@ -942,8 +942,8 @@ public:
 	void            SetStyleSheet( sal_uLong nPara, SfxStyleSheet* pStyle );
 	SfxStyleSheet*	GetStyleSheet( sal_uLong nPara );
 
-	void            SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& );
-	SfxItemSet      GetParaAttribs( sal_uInt16 nPara );
+	void            SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& );
+	SfxItemSet      GetParaAttribs( sal_uInt32 nPara );
 
 	void            Remove( Paragraph* pPara, sal_uLong nParaCount );
 	sal_Bool            Expand( Paragraph* );
@@ -983,15 +983,15 @@ public:
 	// nur fuer EditEngine-Modus
 	void            QuickInsertText( const String& rText, const ESelection& rSel );
 	void            QuickDelete( const ESelection& rSel );
-	void            QuickRemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich = 0 );
+	void            QuickRemoveCharAttribs( sal_uInt32 nPara, sal_uInt16 nWhich = 0 );
 	void            QuickFormatDoc( sal_Bool bFull = sal_False );
 
 	sal_Bool            UpdateFields();
 	void 			RemoveFields( sal_Bool bKeepFieldText, TypeId aType = NULL );
 
-	virtual void    FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos );
-	virtual void    FieldSelected( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos );
-	virtual String  CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos, Color*& rTxtColor, Color*& rFldColor );
+	virtual void    FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos );
+	virtual void    FieldSelected( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos );
+	virtual String  CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos, Color*& rTxtColor, Color*& rFldColor );
 
 	void			SetSpeller( ::com::sun::star::uno::Reference<
 							::com::sun::star::linguistic2::XSpellChecker1 > &xSpeller );
@@ -1049,7 +1049,7 @@ public:
 	const EditEngine& GetEditEngine() const { return *((EditEngine*)pEditEngine); }
 
 	// this is needed for StarOffice Api
-	void SetLevelDependendStyleSheet( sal_uInt16 nPara );
+	void SetLevelDependendStyleSheet( sal_uInt32 nPara );
 
 	sal_uInt16	GetOutlinerMode() const { return nOutlinerMode & OUTLINERMODE_USERMASK; }
 
@@ -1078,11 +1078,11 @@ public:
     void            SetEndPasteOrDropHdl( const Link& rLink );
     Link            GetEndPasteOrDropHdl() const { return maEndPasteOrDropHdl; }
 
-    virtual sal_Int16 GetNumberingStartValue( sal_uInt16 nPara );
-    virtual void SetNumberingStartValue( sal_uInt16 nPara, sal_Int16 nNumberingStartValue );
+    virtual sal_Int16 GetNumberingStartValue( sal_uInt32 nPara );
+    virtual void SetNumberingStartValue( sal_uInt32 nPara, sal_Int16 nNumberingStartValue );
 
-    virtual sal_Bool IsParaIsNumberingRestart( sal_uInt16 nPara );
-    virtual void SetParaIsNumberingRestart( sal_uInt16 nPara, sal_Bool bParaIsNumberingRestart );
+    virtual sal_Bool IsParaIsNumberingRestart( sal_uInt32 nPara );
+    virtual void SetParaIsNumberingRestart( sal_uInt32 nPara, sal_Bool bParaIsNumberingRestart );
 
     /** determine the bullets/numbering status of the given paragraphs
 
@@ -1098,8 +1098,8 @@ public:
         2 : otherwise
     */
     sal_Int16 GetBulletsNumberingStatus(
-        const sal_uInt16 nParaStart,
-        const sal_uInt16 nParaEnd ) const;
+        const sal_uInt32 nParaStart,
+        const sal_uInt32 nParaEnd ) const;
 
     // convenient method to determine the bullets/numbering status for all paragraphs
     sal_Int16 GetBulletsNumberingStatus() const;
diff --git a/main/editeng/inc/editeng/outlobj.hxx b/main/editeng/inc/editeng/outlobj.hxx
index 13b63f4398..e3448a327d 100644
--- a/main/editeng/inc/editeng/outlobj.hxx
+++ b/main/editeng/inc/editeng/outlobj.hxx
@@ -71,7 +71,7 @@ public:
 
     // data read access
 	sal_uInt32 Count() const;
-	sal_Int16 GetDepth(sal_uInt16 nPara) const;
+	sal_Int16 GetDepth(sal_uInt32 nPara) const;
 	const EditTextObject& GetTextObject() const;
 	bool IsEditDoc() const;
     const ParagraphData& GetParagraphData(sal_uInt32 nIndex) const;
diff --git a/main/editeng/inc/editeng/unoedhlp.hxx b/main/editeng/inc/editeng/unoedhlp.hxx
index 399932c8ac..c2d2bca9ab 100644
--- a/main/editeng/inc/editeng/unoedhlp.hxx
+++ b/main/editeng/inc/editeng/unoedhlp.hxx
@@ -106,7 +106,7 @@ public:
         @return sal_True, if the range has been successfully determined
      */
     //static sal_Bool GetAttributeRun( USHORT& nStartIndex, USHORT& nEndIndex, const EditEngine& rEE, USHORT nPara, USHORT nIndex );
-    static sal_Bool GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, const EditEngine& rEE, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell=sal_False );
+    static sal_Bool GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, const EditEngine& rEE, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool bInCell=sal_False );
 
     /** Convert point from edit engine to user coordinate space
 
diff --git a/main/editeng/inc/editeng/unoedprx.hxx b/main/editeng/inc/editeng/unoedprx.hxx
index 34730aa6ae..98d38c0fe3 100644
--- a/main/editeng/inc/editeng/unoedprx.hxx
+++ b/main/editeng/inc/editeng/unoedprx.hxx
@@ -37,20 +37,20 @@ public:
     SvxAccessibleTextAdapter();
 	virtual	~SvxAccessibleTextAdapter();
 
-	virtual sal_uInt16			GetParagraphCount() const;
-	virtual sal_uInt16			GetTextLen( sal_uInt16 nParagraph ) const;
+	virtual sal_uInt32			GetParagraphCount() const;
+	virtual sal_uInt16			GetTextLen( sal_uInt32 nParagraph ) const;
 	virtual String			GetText( const ESelection& rSel ) const;
 	virtual SfxItemSet		GetAttribs( const ESelection& rSel, sal_Bool bOnlyHardAttrib = 0 ) const;
-	virtual	SfxItemSet		GetParaAttribs( sal_uInt16 nPara ) const;
-	virtual void			SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet );
+	virtual	SfxItemSet		GetParaAttribs( sal_uInt32 nPara ) const;
+	virtual void			SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet );
     virtual void            RemoveAttribs( const ESelection& rSelection, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich );
-    virtual void            GetPortions( sal_uInt16 nPara, SvUShorts& rList ) const;
+    virtual void            GetPortions( sal_uInt32 nPara, SvUShorts& rList ) const;
     
-	virtual sal_Int32       CalcLogicalIndex( sal_uInt16 nPara, sal_uInt16 nEEIndex );
-	virtual sal_uInt16          CalcEditEngineIndex( sal_uInt16 nPara, sal_Int32 nLogicalIndex );
+	virtual sal_Int32       CalcLogicalIndex( sal_uInt32 nPara, sal_uInt16 nEEIndex );
+	virtual sal_uInt16          CalcEditEngineIndex( sal_uInt32 nPara, sal_Int32 nLogicalIndex );
     
  	virtual sal_uInt16			GetItemState( const ESelection& rSel, sal_uInt16 nWhich ) const;
-	virtual sal_uInt16			GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich ) const;
+	virtual sal_uInt16			GetItemState( sal_uInt32 nPara, sal_uInt16 nWhich ) const;
 
 	virtual void			QuickInsertText( const String& rText, const ESelection& rSel );
 	virtual void			QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel );
@@ -59,48 +59,48 @@ public:
 
 	virtual SfxItemPool* 	GetPool() const;
 
-	virtual XubString    	CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor );
-	virtual void 	        FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos );
+	virtual XubString    	CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor );
+	virtual void 	        FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos );
 	
 	virtual sal_Bool			IsValid() const;
 
-    virtual LanguageType 	GetLanguage( sal_uInt16, sal_uInt16 ) const;
-    virtual sal_uInt16			GetFieldCount( sal_uInt16 nPara ) const;
-    virtual EFieldInfo		GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const;
-    virtual EBulletInfo     GetBulletInfo( sal_uInt16 nPara ) const;
-    virtual Rectangle		GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
-    virtual Rectangle		GetParaBounds( sal_uInt16 nPara ) const;
+    virtual LanguageType 	GetLanguage( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
+    virtual sal_uInt16			GetFieldCount( sal_uInt32 nPara ) const;
+    virtual EFieldInfo		GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const;
+    virtual EBulletInfo     GetBulletInfo( sal_uInt32 nPara ) const;
+    virtual Rectangle		GetCharBounds( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
+    virtual Rectangle		GetParaBounds( sal_uInt32 nPara ) const;
     virtual MapMode			GetMapMode() const;
 	virtual OutputDevice*	GetRefDevice() const;
-    virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt16& nPara, sal_uInt16& nIndex ) const;
-    virtual sal_Bool		GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
+    virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt32& nPara, sal_uInt16& nIndex ) const;
+    virtual sal_Bool		GetWordIndices( sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
 	virtual void	SetUpdateModeForAcc( sal_Bool bUp);
 	virtual sal_Bool	GetUpdateModeForAcc() const;
-    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
-    virtual sal_uInt16		GetLineCount( sal_uInt16 nPara ) const;
-    virtual sal_uInt16		GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const;
-    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
-    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
+    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
+    virtual sal_uInt16		GetLineCount( sal_uInt32 nPara ) const;
+    virtual sal_uInt16		GetLineLen( sal_uInt32 nPara, sal_uInt16 nLine ) const;
+    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nParagraph, sal_uInt16 nLine ) const;
+    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
     
     virtual sal_Bool        Delete( const ESelection& );
     virtual sal_Bool		InsertText( const String&, const ESelection& );
     virtual sal_Bool		QuickFormatDoc( sal_Bool bFull=sal_False );
-    virtual sal_Int16		GetDepth( sal_uInt16 nPara ) const;
-    virtual sal_Bool		SetDepth( sal_uInt16 nPara, sal_Int16 nNewDepth );
+    virtual sal_Int16		GetDepth( sal_uInt32 nPara ) const;
+    virtual sal_Bool		SetDepth( sal_uInt32 nPara, sal_Int16 nNewDepth );
 
     virtual const SfxItemSet*   GetEmptyItemSetPtr();
 
     // implementation functions for XParagraphAppend and XTextPortionAppend
     // (not needed for accessibility, only for new import API)
     virtual void        AppendParagraph();
-    virtual xub_StrLen  AppendTextPortion( sal_uInt16 nPara, const String &rText, const SfxItemSet &rSet );
+    virtual xub_StrLen  AppendTextPortion( sal_uInt32 nPara, const String &rText, const SfxItemSet &rSet );
 
     //XTextCopy
     virtual void        CopyText(const SvxTextForwarder& rSource); 
     
     void                    SetForwarder( SvxTextForwarder& );
-    sal_Bool			  	HaveImageBullet( sal_uInt16 nPara ) const;
-    sal_Bool			  	HaveTextBullet( sal_uInt16 nPara ) const;
+    sal_Bool			  	HaveImageBullet( sal_uInt32 nPara ) const;
+    sal_Bool			  	HaveTextBullet( sal_uInt32 nPara ) const;
 
     /** Query whether all text in given selection is editable
 
diff --git a/main/editeng/inc/editeng/unoedsrc.hxx b/main/editeng/inc/editeng/unoedsrc.hxx
index 4e024bc848..98b5df5c95 100644
--- a/main/editeng/inc/editeng/unoedsrc.hxx
+++ b/main/editeng/inc/editeng/unoedsrc.hxx
@@ -149,25 +149,25 @@ class EDITENG_DLLPUBLIC SvxTextForwarder
 public:
 	virtual				~SvxTextForwarder();
 	
-	virtual sal_uInt16		GetParagraphCount() const = 0;
-	virtual sal_uInt16		GetTextLen( sal_uInt16 nParagraph ) const = 0;
+	virtual sal_uInt32		GetParagraphCount() const = 0;
+	virtual sal_uInt16		GetTextLen( sal_uInt32 nParagraph ) const = 0;
 	virtual String		GetText( const ESelection& rSel ) const = 0;
 	virtual SfxItemSet	GetAttribs( const ESelection& rSel, sal_Bool bOnlyHardAttrib = 0 ) const = 0;
-	virtual	SfxItemSet  GetParaAttribs( sal_uInt16 nPara ) const = 0;
-	virtual void		SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet ) = 0;
+	virtual	SfxItemSet  GetParaAttribs( sal_uInt32 nPara ) const = 0;
+	virtual void		SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet ) = 0;
     virtual void        RemoveAttribs( const ESelection& rSelection, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich ) = 0;
-	virtual void		GetPortions( sal_uInt16 nPara, SvUShorts& rList ) const = 0;
+	virtual void		GetPortions( sal_uInt32 nPara, SvUShorts& rList ) const = 0;
 	
 	virtual sal_uInt16		GetItemState( const ESelection& rSel, sal_uInt16 nWhich ) const = 0;
-	virtual sal_uInt16		GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich ) const = 0;
+	virtual sal_uInt16		GetItemState( sal_uInt32 nPara, sal_uInt16 nWhich ) const = 0;
 
 	virtual void		QuickInsertText( const String& rText, const ESelection& rSel ) = 0;
 	virtual void		QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel ) = 0;
 	virtual void		QuickSetAttribs( const SfxItemSet& rSet, const ESelection& rSel ) = 0;
 	virtual void		QuickInsertLineBreak( const ESelection& rSel ) = 0;
 
-	virtual XubString    CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor ) = 0;
-	virtual void 	     FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos ) = 0;
+	virtual XubString    CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor ) = 0;
+	virtual void 	     FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos ) = 0;
 
 	virtual SfxItemPool* GetPool() const = 0;
 
@@ -175,7 +175,7 @@ public:
  
     // implementation functions for XParagraphAppend and XTextPortionAppend
     virtual void        AppendParagraph() = 0;
-    virtual xub_StrLen  AppendTextPortion( sal_uInt16 nPara, const String &rText, const SfxItemSet &rSet ) = 0;
+    virtual xub_StrLen  AppendTextPortion( sal_uInt32 nPara, const String &rText, const SfxItemSet &rSet ) = 0;
     
     // XTextCopy
     virtual void        CopyText(const SvxTextForwarder& rSource) = 0; 
@@ -194,14 +194,14 @@ public:
         @param nIndex[0 .. m-1]
         Index of character to query language of
      */
-    virtual LanguageType	GetLanguage( sal_uInt16 nPara, sal_uInt16 nIndex ) const = 0;
+    virtual LanguageType	GetLanguage( sal_uInt32 nPara, sal_uInt16 nIndex ) const = 0;
 
     /** Query number of fields in the underlying edit engine
 
         @param nPara[0 .. n-1]
         Index of paragraph to query field number in
      */
-    virtual sal_uInt16			GetFieldCount( sal_uInt16 nPara ) const = 0;
+    virtual sal_uInt16			GetFieldCount( sal_uInt32 nPara ) const = 0;
 
     /** Query information for given field number in the underlying edit engine
 
@@ -211,14 +211,14 @@ public:
         @param nField[0 .. m-1]
         Index of field to query information of
      */
-    virtual EFieldInfo		GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const = 0;
+    virtual EFieldInfo		GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const = 0;
 
     /** Query information regarding bullets for given paragraph on the underlying edit engine
 
         @param nPara[0 .. n-1]
         Index of paragraph to query bullet info on
      */
-    virtual EBulletInfo     GetBulletInfo( sal_uInt16 nPara ) const = 0;
+    virtual EBulletInfo     GetBulletInfo( sal_uInt32 nPara ) const = 0;
      virtual String       GetNumStr(sal_uInt16) const { return XubString();};
     //IAccessible2 migration fix
     virtual void					SetUpdateModeForAcc( sal_Bool ) {};
@@ -244,7 +244,7 @@ public:
         left corner of text. The coordinates returned here are to be
         interpreted in the map mode given by GetMapMode().
     */
-    virtual Rectangle		GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex ) const = 0;
+    virtual Rectangle		GetCharBounds( sal_uInt32 nPara, sal_uInt16 nIndex ) const = 0;
 
     /** Query the bounding rectangle of the given paragraph
 
@@ -255,7 +255,7 @@ public:
         left corner of text. The coordinates returned here are to be
         interpreted in the map mode given by GetMapMode().
      */
-    virtual Rectangle		GetParaBounds( sal_uInt16 nPara ) const = 0;
+    virtual Rectangle		GetParaBounds( sal_uInt32 nPara ) const = 0;
 
     /** Query the map mode of the underlying EditEngine/Outliner
 
@@ -292,7 +292,7 @@ public:
         @return sal_True, if the point is over any text and both rPara and rIndex are valid
 
      */
-    virtual sal_Bool		GetIndexAtPoint( const Point& rPoint, sal_uInt16& rPara, sal_uInt16& rIndex ) const = 0;
+    virtual sal_Bool		GetIndexAtPoint( const Point& rPoint, sal_uInt32& rPara, sal_uInt16& rIndex ) const = 0;
 
     /** Get the start and the end index of the word at the given index
 
@@ -317,7 +317,7 @@ public:
 
         @return sal_True, if the result is non-empty
      */
-    virtual sal_Bool		GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& rStart, sal_uInt16& rEnd ) const = 0;
+    virtual sal_Bool		GetWordIndices( sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt16& rStart, sal_uInt16& rEnd ) const = 0;
 
     /** Query range of similar attributes
 
@@ -335,7 +335,7 @@ public:
         @return sal_True, if the range has been successfully determined
      */
 //    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex ) const = 0;
-    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const = 0;
+    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const = 0;
 
     /** Query number of lines in the formatted paragraph
 
@@ -345,7 +345,7 @@ public:
         @return number of lines in given paragraph
 
      */
-    virtual sal_uInt16			GetLineCount( sal_uInt16 nPara ) const = 0;
+    virtual sal_uInt16			GetLineCount( sal_uInt32 nPara ) const = 0;
 
     /** Query line length
 
@@ -356,7 +356,7 @@ public:
         Index of line in paragraph to query line length of
 
      */
-    virtual sal_uInt16			GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const = 0;
+    virtual sal_uInt16			GetLineLen( sal_uInt32 nPara, sal_uInt16 nLine ) const = 0;
     
     /** Query bounds of line in paragraph
 
@@ -373,7 +373,7 @@ public:
         Index of line in paragraph to query line length of
 
      */
-    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const = 0;
+    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nParagraph, sal_uInt16 nLine ) const = 0;
     
     /** Query the line number for a index in the paragraphs text
 
@@ -386,7 +386,7 @@ public:
         @returns [0 .. k-1]
         The line number of the chara in the paragraph
      */
-    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const = 0;
+    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const = 0;
 
     /** Delete given text range and reformat text
 
@@ -425,7 +425,7 @@ public:
         @return the outline level of the given paragraph. The range is
         [0,n), where n is the maximal outline level.
      */
-    virtual sal_Int16		GetDepth( sal_uInt16 nPara ) const = 0;
+    virtual sal_Int16		GetDepth( sal_uInt32 nPara ) const = 0;
 
     /** Set the outline depth of given paragraph
 
@@ -440,13 +440,13 @@ public:
         failure are e.g. the text does not support outline level
         (EditEngine), or the depth range is exceeded.
      */
-    virtual sal_Bool		SetDepth( sal_uInt16 nPara, sal_Int16 nNewDepth ) = 0;
+    virtual sal_Bool		SetDepth( sal_uInt32 nPara, sal_Int16 nNewDepth ) = 0;
 
-    virtual sal_Int16 GetNumberingStartValue( sal_uInt16 nPara );
-    virtual void SetNumberingStartValue( sal_uInt16 nPara, sal_Int16 nNumberingStartValue );
+    virtual sal_Int16 GetNumberingStartValue( sal_uInt32 nPara );
+    virtual void SetNumberingStartValue( sal_uInt32 nPara, sal_Int16 nNumberingStartValue );
 
-    virtual sal_Bool IsParaIsNumberingRestart( sal_uInt16 nPara );
-    virtual void SetParaIsNumberingRestart( sal_uInt16 nPara, sal_Bool bParaIsNumberingRestart );
+    virtual sal_Bool IsParaIsNumberingRestart( sal_uInt32 nPara );
+    virtual void SetParaIsNumberingRestart( sal_uInt32 nPara, sal_Bool bParaIsNumberingRestart );
 };
 
 /** Encapsulates the document view for the purpose of unified
diff --git a/main/editeng/inc/editeng/unofored.hxx b/main/editeng/inc/editeng/unofored.hxx
index ffbbcf0c66..e9f2f73447 100644
--- a/main/editeng/inc/editeng/unofored.hxx
+++ b/main/editeng/inc/editeng/unofored.hxx
@@ -39,17 +39,17 @@ public:
 						SvxEditEngineForwarder( EditEngine& rEngine );
 	virtual				~SvxEditEngineForwarder();
 
-	virtual sal_uInt16		GetParagraphCount() const;
-	virtual sal_uInt16		GetTextLen( sal_uInt16 nParagraph ) const;
+	virtual sal_uInt32		GetParagraphCount() const;
+	virtual sal_uInt16		GetTextLen( sal_uInt32 nParagraph ) const;
 	virtual String		GetText( const ESelection& rSel ) const;
 	virtual SfxItemSet	GetAttribs( const ESelection& rSel, sal_Bool bOnlyHardAttrib = EditEngineAttribs_All ) const;
-	virtual	SfxItemSet	GetParaAttribs( sal_uInt16 nPara ) const;
-	virtual void		SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet );
+	virtual	SfxItemSet	GetParaAttribs( sal_uInt32 nPara ) const;
+	virtual void		SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet );
     virtual void        RemoveAttribs( const ESelection& rSelection, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich );
-	virtual void		GetPortions( sal_uInt16 nPara, SvUShorts& rList ) const;
+	virtual void		GetPortions( sal_uInt32 nPara, SvUShorts& rList ) const;
 	
 	virtual sal_uInt16		GetItemState( const ESelection& rSel, sal_uInt16 nWhich ) const;
-	virtual sal_uInt16		GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich ) const;
+	virtual sal_uInt16		GetItemState( sal_uInt32 nPara, sal_uInt16 nWhich ) const;
 
 	virtual void		QuickInsertText( const String& rText, const ESelection& rSel );
 	virtual void		QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel );
@@ -58,36 +58,36 @@ public:
 
 	virtual SfxItemPool* GetPool() const;
 
-	virtual XubString    CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor );
-	virtual void 	     FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos );
+	virtual XubString    CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor );
+	virtual void 	     FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos );
 	virtual sal_Bool		 IsValid() const;
 
-    virtual LanguageType 	GetLanguage( sal_uInt16, sal_uInt16 ) const;
-    virtual sal_uInt16			GetFieldCount( sal_uInt16 nPara ) const;
-    virtual EFieldInfo		GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const;
-    virtual EBulletInfo     GetBulletInfo( sal_uInt16 nPara ) const;
-    virtual Rectangle		GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
-    virtual Rectangle		GetParaBounds( sal_uInt16 nPara ) const;
+    virtual LanguageType 	GetLanguage( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
+    virtual sal_uInt16			GetFieldCount( sal_uInt32 nPara ) const;
+    virtual EFieldInfo		GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const;
+    virtual EBulletInfo     GetBulletInfo( sal_uInt32 nPara ) const;
+    virtual Rectangle		GetCharBounds( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
+    virtual Rectangle		GetParaBounds( sal_uInt32 nPara ) const;
     virtual MapMode			GetMapMode() const;
 	virtual OutputDevice*	GetRefDevice() const;
-    virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt16& nPara, sal_uInt16& nIndex ) const;
-    virtual sal_Bool		GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
-    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
-    virtual sal_uInt16			GetLineCount( sal_uInt16 nPara ) const;
-    virtual sal_uInt16			GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const;
-    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
-    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
+    virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt32& nPara, sal_uInt16& nIndex ) const;
+    virtual sal_Bool		GetWordIndices( sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
+    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
+    virtual sal_uInt16			GetLineCount( sal_uInt32 nPara ) const;
+    virtual sal_uInt16			GetLineLen( sal_uInt32 nPara, sal_uInt16 nLine ) const;
+    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nParagraph, sal_uInt16 nLine ) const;
+    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
     virtual sal_Bool		Delete( const ESelection& );
     virtual sal_Bool		InsertText( const String&, const ESelection& );
     virtual sal_Bool		QuickFormatDoc( sal_Bool bFull=sal_False );
-    virtual sal_Int16		GetDepth( sal_uInt16 nPara ) const;
-    virtual sal_Bool		SetDepth( sal_uInt16 nPara, sal_Int16 nNewDepth );
+    virtual sal_Int16		GetDepth( sal_uInt32 nPara ) const;
+    virtual sal_Bool		SetDepth( sal_uInt32 nPara, sal_Int16 nNewDepth );
 
     virtual const SfxItemSet*   GetEmptyItemSetPtr();
  
     // implementation functions for XParagraphAppend and XTextPortionAppend
     virtual void        AppendParagraph();
-    virtual xub_StrLen  AppendTextPortion( sal_uInt16 nPara, const String &rText, const SfxItemSet &rSet );
+    virtual xub_StrLen  AppendTextPortion( sal_uInt32 nPara, const String &rText, const SfxItemSet &rSet );
     //XTextCopy
     virtual void        CopyText(const SvxTextForwarder& rSource); 
 };
diff --git a/main/editeng/inc/editeng/unoforou.hxx b/main/editeng/inc/editeng/unoforou.hxx
index 133f5c2990..4818f51873 100644
--- a/main/editeng/inc/editeng/unoforou.hxx
+++ b/main/editeng/inc/editeng/unoforou.hxx
@@ -57,17 +57,17 @@ public:
 						SvxOutlinerForwarder( Outliner& rOutl, sal_Bool bOutlText = sal_False );
 	virtual				~SvxOutlinerForwarder();
 
-	virtual sal_uInt16		GetParagraphCount() const;
-	virtual sal_uInt16		GetTextLen( sal_uInt16 nParagraph ) const;
+	virtual sal_uInt32		GetParagraphCount() const;
+	virtual sal_uInt16		GetTextLen( sal_uInt32 nParagraph ) const;
 	virtual String		GetText( const ESelection& rSel ) const;
 	virtual SfxItemSet	GetAttribs( const ESelection& rSel, sal_Bool bOnlyHardAttrib = 0 ) const;
-	virtual	SfxItemSet	GetParaAttribs( sal_uInt16 nPara ) const;
-	virtual void		SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet );
+	virtual	SfxItemSet	GetParaAttribs( sal_uInt32 nPara ) const;
+	virtual void		SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet );
     virtual void        RemoveAttribs( const ESelection& rSelection, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich );
-	virtual void		GetPortions( sal_uInt16 nPara, SvUShorts& rList ) const;
+	virtual void		GetPortions( sal_uInt32 nPara, SvUShorts& rList ) const;
 
 	virtual sal_uInt16		GetItemState( const ESelection& rSel, sal_uInt16 nWhich ) const;
-	virtual sal_uInt16		GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich ) const;
+	virtual sal_uInt16		GetItemState( sal_uInt32 nPara, sal_uInt16 nWhich ) const;
 
 	virtual void		QuickInsertText( const String& rText, const ESelection& rSel );
 	virtual void		QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel );
@@ -76,38 +76,38 @@ public:
 
 	virtual SfxItemPool* GetPool() const;
 
-	virtual XubString    CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor );
-	virtual void 	     FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos );
+	virtual XubString    CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor );
+	virtual void 	     FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos );
 	
 	virtual sal_Bool		IsValid() const;
 
 	Outliner&			GetOutliner() const { return rOutliner; }
 
-    virtual LanguageType 	GetLanguage( sal_uInt16, sal_uInt16 ) const;
-    virtual sal_uInt16			GetFieldCount( sal_uInt16 nPara ) const;
-    virtual EFieldInfo		GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const;
-    virtual EBulletInfo     GetBulletInfo( sal_uInt16 nPara ) const;
-    virtual Rectangle		GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
-    virtual Rectangle		GetParaBounds( sal_uInt16 nPara ) const;
+    virtual LanguageType 	GetLanguage( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
+    virtual sal_uInt16			GetFieldCount( sal_uInt32 nPara ) const;
+    virtual EFieldInfo		GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const;
+    virtual EBulletInfo     GetBulletInfo( sal_uInt32 nPara ) const;
+    virtual Rectangle		GetCharBounds( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
+    virtual Rectangle		GetParaBounds( sal_uInt32 nPara ) const;
     virtual MapMode			GetMapMode() const;
 	virtual OutputDevice*	GetRefDevice() const;
-    virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt16& nPara, sal_uInt16& nIndex ) const;
-    virtual sal_Bool		GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
-    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
-    virtual sal_uInt16			GetLineCount( sal_uInt16 nPara ) const;
-    virtual sal_uInt16			GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const;
-    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nPara, sal_uInt16 nLine ) const;
-    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
+    virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt32& nPara, sal_uInt16& nIndex ) const;
+    virtual sal_Bool		GetWordIndices( sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
+    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
+    virtual sal_uInt16			GetLineCount( sal_uInt32 nPara ) const;
+    virtual sal_uInt16			GetLineLen( sal_uInt32 nPara, sal_uInt16 nLine ) const;
+    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nPara, sal_uInt16 nLine ) const;
+    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
     virtual sal_Bool		Delete( const ESelection& );
     virtual sal_Bool		InsertText( const String&, const ESelection& );
     virtual sal_Bool		QuickFormatDoc( sal_Bool bFull=sal_False );
-    virtual sal_Int16		GetDepth( sal_uInt16 nPara ) const;
-    virtual sal_Bool		SetDepth( sal_uInt16 nPara, sal_Int16 nNewDepth );
-    virtual sal_Int16       GetNumberingStartValue( sal_uInt16 nPara );
-    virtual void            SetNumberingStartValue( sal_uInt16 nPara, sal_Int16 nNumberingStartValue );
+    virtual sal_Int16		GetDepth( sal_uInt32 nPara ) const;
+    virtual sal_Bool		SetDepth( sal_uInt32 nPara, sal_Int16 nNewDepth );
+    virtual sal_Int16       GetNumberingStartValue( sal_uInt32 nPara );
+    virtual void            SetNumberingStartValue( sal_uInt32 nPara, sal_Int16 nNumberingStartValue );
 
-    virtual sal_Bool        IsParaIsNumberingRestart( sal_uInt16 nPara );   
-    virtual void            SetParaIsNumberingRestart( sal_uInt16 nPara, sal_Bool bParaIsNumberingRestart );
+    virtual sal_Bool        IsParaIsNumberingRestart( sal_uInt32 nPara );   
+    virtual void            SetParaIsNumberingRestart( sal_uInt32 nPara, sal_Bool bParaIsNumberingRestart );
 
 	/* this method flushes internal caches for this forwarder */
 	void				flushCache();
@@ -116,7 +116,7 @@ public:
 
     // implementation functions for XParagraphAppend and XTextPortionAppend
     virtual void        AppendParagraph();
-    virtual xub_StrLen  AppendTextPortion( sal_uInt16 nPara, const String &rText, const SfxItemSet &rSet );
+    virtual xub_StrLen  AppendTextPortion( sal_uInt32 nPara, const String &rText, const SfxItemSet &rSet );
     //XTextCopy
     virtual void        CopyText(const SvxTextForwarder& rSource); 
 };
diff --git a/main/editeng/inc/editeng/unotext.hxx b/main/editeng/inc/editeng/unotext.hxx
index e57d80a942..f0f275eed0 100644
--- a/main/editeng/inc/editeng/unotext.hxx
+++ b/main/editeng/inc/editeng/unotext.hxx
@@ -183,17 +183,17 @@ public:
 	virtual void					UpdateData();
 
     // SvxTextForwarder
-	virtual sal_uInt16		GetParagraphCount() const;
-	virtual sal_uInt16		GetTextLen( sal_uInt16 nParagraph ) const;
+	virtual sal_uInt32		GetParagraphCount() const;
+	virtual sal_uInt16		GetTextLen( sal_uInt32 nParagraph ) const;
 	virtual String			GetText( const ESelection& rSel ) const;
 	virtual SfxItemSet		GetAttribs( const ESelection& rSel, sal_Bool bOnlyHardAttrib = 0 ) const;
-	virtual	SfxItemSet		GetParaAttribs( sal_uInt16 nPara ) const;
-	virtual void			SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet );
+	virtual	SfxItemSet		GetParaAttribs( sal_uInt32 nPara ) const;
+	virtual void			SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet );
     virtual void            RemoveAttribs( const ESelection& rSelection, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich );
-    virtual void            GetPortions( sal_uInt16 nPara, SvUShorts& rList ) const;
+    virtual void            GetPortions( sal_uInt32 nPara, SvUShorts& rList ) const;
     
 	sal_uInt16				GetItemState( const ESelection& rSel, sal_uInt16 nWhich ) const;
-	sal_uInt16				GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich ) const;
+	sal_uInt16				GetItemState( sal_uInt32 nPara, sal_uInt16 nWhich ) const;
 
 	virtual SfxItemPool* 	GetPool() const;
 
@@ -202,38 +202,38 @@ public:
 	virtual void			QuickSetAttribs( const SfxItemSet& rSet, const ESelection& rSel );
 	virtual void			QuickInsertLineBreak( const ESelection& rSel );
 
-	virtual XubString		CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor );
-	virtual void 	        FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos );
+	virtual XubString		CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor );
+	virtual void 	        FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos );
 	
 	virtual sal_Bool		IsValid() const;
 
     virtual void 			SetNotifyHdl( const Link& );
-    virtual LanguageType 	GetLanguage( sal_uInt16, sal_uInt16 ) const;
-    virtual sal_uInt16			GetFieldCount( sal_uInt16 nPara ) const;
-    virtual EFieldInfo		GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const;
-    virtual EBulletInfo     GetBulletInfo( sal_uInt16 nPara ) const;
-    virtual Rectangle		GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
-    virtual Rectangle		GetParaBounds( sal_uInt16 nPara ) const;
+    virtual LanguageType 	GetLanguage( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
+    virtual sal_uInt16			GetFieldCount( sal_uInt32 nPara ) const;
+    virtual EFieldInfo		GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const;
+    virtual EBulletInfo     GetBulletInfo( sal_uInt32 nPara ) const;
+    virtual Rectangle		GetCharBounds( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
+    virtual Rectangle		GetParaBounds( sal_uInt32 nPara ) const;
     virtual MapMode		 	GetMapMode() const;
 	virtual OutputDevice*	GetRefDevice() const;
-    virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt16& nPara, sal_uInt16& nIndex ) const;
-    virtual sal_Bool		GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
-    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
-    virtual sal_uInt16			GetLineCount( sal_uInt16 nPara ) const;
-    virtual sal_uInt16			GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const;
-    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
-    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
+    virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt32& nPara, sal_uInt16& nIndex ) const;
+    virtual sal_Bool		GetWordIndices( sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
+    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
+    virtual sal_uInt16			GetLineCount( sal_uInt32 nPara ) const;
+    virtual sal_uInt16			GetLineLen( sal_uInt32 nPara, sal_uInt16 nLine ) const;
+    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nParagraph, sal_uInt16 nLine ) const;
+    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
     virtual sal_Bool		Delete( const ESelection& );
     virtual sal_Bool		InsertText( const String&, const ESelection& );
     virtual sal_Bool		QuickFormatDoc( sal_Bool bFull=sal_False );
-    virtual sal_Int16		GetDepth( sal_uInt16 nPara ) const;
-    virtual sal_Bool		SetDepth( sal_uInt16 nPara, sal_Int16 nNewDepth );
+    virtual sal_Int16		GetDepth( sal_uInt32 nPara ) const;
+    virtual sal_Bool		SetDepth( sal_uInt32 nPara, sal_Int16 nNewDepth );
 
     virtual const SfxItemSet*   GetEmptyItemSetPtr();
 
     // implementation functions for XParagraphAppend and XTextPortionAppend
     virtual void        AppendParagraph();
-    virtual xub_StrLen  AppendTextPortion( sal_uInt16 nPara, const String &rText, const SfxItemSet &rSet );
+    virtual xub_StrLen  AppendTextPortion( sal_uInt32 nPara, const String &rText, const SfxItemSet &rSet );
     //XTextCopy
     virtual void        CopyText(const SvxTextForwarder& rSource); 
 };
@@ -500,7 +500,7 @@ class SvxUnoTextContentEnumeration : public ::cppu::WeakAggImplHelper1< ::com::s
 private:
 	::com::sun::star::uno::Reference< ::com::sun::star::text::XText > mxParentText;
 	SvxEditSource*			mpEditSource;
-	sal_uInt16				mnNextParagraph;
+	sal_uInt32				mnNextParagraph;
 	const SvxUnoTextBase&	mrText;
 
 public:
@@ -525,7 +525,7 @@ class SvxUnoTextContent : public SvxUnoTextRangeBase,
 	friend class SvxUnoTextContentEnumeration;
 private:
 	::com::sun::star::uno::Reference< ::com::sun::star::text::XText > mxParentText;
-	sal_uInt16				mnParagraph;
+	sal_uInt32				mnParagraph;
 	const SvxUnoTextBase&	mrParentText;
 
 	// for xComponent
@@ -541,7 +541,7 @@ protected:
 
 public:
 	SvxUnoTextContent() throw();
-	SvxUnoTextContent( const SvxUnoTextBase& rText, sal_uInt16 nPara ) throw();
+	SvxUnoTextContent( const SvxUnoTextBase& rText, sal_uInt32 nPara ) throw();
 	SvxUnoTextContent( const SvxUnoTextContent& rContent ) throw();
 	virtual	~SvxUnoTextContent() throw();
 
@@ -600,12 +600,12 @@ private:
 	SvxEditSource*		mpEditSource;
 	::com::sun::star::uno::Reference< ::com::sun::star::text::XText > mxParentText;
 	const SvxUnoTextBase&	mrParentText;
-	sal_uInt16			mnParagraph;
+	sal_uInt32			mnParagraph;
 	SvUShorts*			mpPortions;
 	sal_uInt16			mnNextPortion;
 
 public:
-	SvxUnoTextRangeEnumeration( const SvxUnoTextBase& rText, sal_uInt16 nPara ) throw();
+	SvxUnoTextRangeEnumeration( const SvxUnoTextBase& rText, sal_uInt32 nPara ) throw();
 	virtual ~SvxUnoTextRangeEnumeration() throw();
 
 	// ::com::sun::star::container::XEnumeration
diff --git a/main/editeng/source/accessibility/AccessibleEditableTextPara.cxx b/main/editeng/source/accessibility/AccessibleEditableTextPara.cxx
index 2e451b13c1..582387d256 100644
--- a/main/editeng/source/accessibility/AccessibleEditableTextPara.cxx
+++ b/main/editeng/source/accessibility/AccessibleEditableTextPara.cxx
@@ -193,7 +193,7 @@ namespace accessibility
                    "AccessibleEditableTextPara::getLocale: paragraph index value overflow");
 
         // return locale of first character in the paragraph
-        return SvxLanguageToLocale(aLocale, GetTextForwarder().GetLanguage( static_cast< sal_uInt16 >( GetParagraphIndex() ), 0 ));
+        return SvxLanguageToLocale(aLocale, GetTextForwarder().GetLanguage( GetParagraphIndex(), 0 ));
     }
 
     void AccessibleEditableTextPara::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
@@ -237,13 +237,13 @@ namespace accessibility
         DBG_ASSERT(nParaIndex >= 0 && nParaIndex <= USHRT_MAX,
                    "AccessibleEditableTextPara::implGetLineBoundary: paragraph index value overflow");
 
-        const sal_Int32 nTextLen = rCacheTF.GetTextLen( static_cast< sal_uInt16 >( nParaIndex ) );
+        const sal_Int32 nTextLen = rCacheTF.GetTextLen( nParaIndex );
 
         CheckPosition(nIndex);
 
         rBoundary.startPos = rBoundary.endPos = -1;
 
-        const sal_uInt16 nLineCount=rCacheTF.GetLineCount( static_cast< sal_uInt16 >( nParaIndex ) );
+        const sal_uInt16 nLineCount=rCacheTF.GetLineCount( nParaIndex );
 
         if( nIndex == nTextLen )
         {
@@ -251,7 +251,7 @@ namespace accessibility
             if( nLineCount <= 1 )
                 rBoundary.startPos = 0;
             else
-                rBoundary.startPos = nTextLen - rCacheTF.GetLineLen( static_cast< sal_uInt16 >( nParaIndex ),
+                rBoundary.startPos = nTextLen - rCacheTF.GetLineLen( nParaIndex,
                                                                      nLineCount-1 );
 
             rBoundary.endPos = nTextLen;
@@ -263,11 +263,11 @@ namespace accessibility
             sal_Int32 nCurIndex;
             for( nLine=0, nCurIndex=0; nLine<nLineCount; ++nLine )
             {
-                nCurIndex += rCacheTF.GetLineLen( static_cast< sal_uInt16 >( nParaIndex ), nLine);
+                nCurIndex += rCacheTF.GetLineLen(nParaIndex, nLine);
 
                 if( nCurIndex > nIndex )
                 {
-                    rBoundary.startPos = nCurIndex - rCacheTF.GetLineLen(static_cast< sal_uInt16 >( nParaIndex ), nLine);
+                    rBoundary.startPos = nCurIndex - rCacheTF.GetLineLen(nParaIndex, nLine);
                     rBoundary.endPos = nCurIndex;
                     break;
                 }
@@ -401,7 +401,7 @@ namespace accessibility
                    GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
                    "AccessibleEditableTextPara::MakeSelection: index value overflow");
 
-		sal_uInt16 nParaIndex = static_cast< sal_uInt16 >( GetParagraphIndex() );
+		sal_uInt32 nParaIndex = GetParagraphIndex();
         return ESelection( nParaIndex, static_cast< sal_uInt16 >( nStartEEIndex ),
                            nParaIndex, static_cast< sal_uInt16 >( nEndEEIndex ) );
     }
@@ -453,7 +453,7 @@ namespace accessibility
         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
 
         ESelection aSelection;
-        sal_uInt16 nPara = static_cast< sal_uInt16 > ( GetParagraphIndex() );
+        sal_uInt32 nPara = GetParagraphIndex();
         if( !GetEditViewForwarder().GetSelection( aSelection ) )
             return sal_False;
 
@@ -511,7 +511,7 @@ namespace accessibility
     {
         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
 
-        return GetTextForwarder().GetTextLen( static_cast< sal_uInt16 >( GetParagraphIndex() ) );
+        return GetTextForwarder().GetTextLen( GetParagraphIndex() );
     }
 
     sal_Bool AccessibleEditableTextPara::IsVisible() const
@@ -662,7 +662,7 @@ namespace accessibility
         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
                    "AccessibleEditableTextPara::HaveChildren: paragraph index value overflow");
 
-        return GetTextForwarder().HaveImageBullet( static_cast< sal_uInt16 >(GetParagraphIndex()) );
+        return GetTextForwarder().HaveImageBullet( GetParagraphIndex() );
     }
 
     sal_Bool AccessibleEditableTextPara::IsActive() const SAL_THROW((uno::RuntimeException))
@@ -797,12 +797,12 @@ namespace accessibility
         DBG_ASSERT(nIndex >= 0 && nIndex <= USHRT_MAX,
                    "AccessibleEditableTextPara::GetAttributeRun: index value overflow");
 
-        DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+        DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= EE_PARA_MAX,
                    "AccessibleEditableTextPara::getLocale: paragraph index value overflow");
 
         return GetTextForwarder().GetAttributeRun( nStartIndex,
                                                    nEndIndex,
-                                                   static_cast< sal_uInt16 >(GetParagraphIndex()),
+                                                   GetParagraphIndex(),
                                                    static_cast< sal_uInt16 >(nIndex) );
     }
 
@@ -1115,7 +1115,7 @@ namespace accessibility
             SvxTextForwarder& rCacheTF = GetTextForwarder();
             Point aLogPoint( GetViewForwarder().PixelToLogic( aPoint, rCacheTF.GetMapMode() ) );
 
-            EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( static_cast< sal_uInt16 > (GetParagraphIndex()) );
+            EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( GetParagraphIndex() );
 
             if( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND &&
                 aBulletInfo.bVisible &&
@@ -1142,7 +1142,7 @@ namespace accessibility
                    "AccessibleEditableTextPara::getBounds: index value overflow");
 
         SvxTextForwarder& rCacheTF = GetTextForwarder();
-        Rectangle aRect = rCacheTF.GetParaBounds( static_cast< sal_uInt16 >( GetParagraphIndex() ) );
+        Rectangle aRect = rCacheTF.GetParaBounds( GetParagraphIndex() );
 
         // convert to screen coordinates
         Rectangle aScreenRect = AccessibleEditableTextPara::LogicToPixel( aRect,
@@ -1273,7 +1273,7 @@ namespace accessibility
             GetParagraphIndex() == aSelection.nEndPara )
         {
             // caret is always nEndPara,nEndPos
-			EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( static_cast< sal_uInt16 >(GetParagraphIndex()) );
+			EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( GetParagraphIndex() );
 			if( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND &&
 				aBulletInfo.bVisible && 
 				aBulletInfo.nType != SVX_NUM_BITMAP )
@@ -1364,13 +1364,13 @@ namespace accessibility
 		//For field object info
 		sal_Int32 nParaIndex = GetParagraphIndex();
 		sal_Int32 nAllFieldLen = 0;
-		sal_Int32 nField = rCacheTF.GetFieldCount(sal_uInt16(nParaIndex)), nFoundFieldIndex = -1;
+		sal_Int32 nField = rCacheTF.GetFieldCount(nParaIndex), nFoundFieldIndex = -1;
 		EFieldInfo ree;
 		sal_Int32  reeBegin, reeEnd;
 		sal_Int32 nFieldType = -1;
 		for(sal_uInt16 j = 0; j < nField; j++)
 		{
-			ree = rCacheTF.GetFieldInfo(sal_uInt16(nParaIndex), j);
+			ree = rCacheTF.GetFieldInfo(nParaIndex, j);
 			reeBegin  = ree.aPosition.nIndex + nAllFieldLen;
 			reeEnd = reeBegin + ree.aCurrentText.Len();
 			nAllFieldLen += (ree.aCurrentText.Len() - 1);
@@ -1448,7 +1448,7 @@ namespace accessibility
 	
 		//Skip the bullet range to ingnore the bullet text 
 		SvxTextForwarder& rCacheTF = GetTextForwarder();
-		EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( static_cast< sal_uInt16 >(GetParagraphIndex()) );
+		EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( GetParagraphIndex() );
 		if (aBulletInfo.bVisible)
 			nIndex += aBulletInfo.aText.Len();
 		if (nIndex != 0 && nIndex >= getCharacterCount())
@@ -1582,7 +1582,7 @@ namespace accessibility
         CheckPosition( nIndex );
 
         SvxTextForwarder& rCacheTF = GetTextForwarder();
-        Rectangle aRect = rCacheTF.GetCharBounds( static_cast< sal_uInt16 >( GetParagraphIndex() ), static_cast< sal_uInt16 >( nIndex ) );
+        Rectangle aRect = rCacheTF.GetCharBounds( GetParagraphIndex(), static_cast< sal_uInt16 >( nIndex ) );
 
         // convert to screen
         Rectangle aScreenRect = AccessibleEditableTextPara::LogicToPixel( aRect,
@@ -1622,7 +1622,8 @@ namespace accessibility
         ::vos::OGuard aGuard( Application::GetSolarMutex() );
 	if ((rPoint.X <= 0) && (rPoint.Y <= 0))
 		return 0;
-        sal_uInt16 nPara, nIndex;
+        sal_uInt32 nPara;
+        sal_uInt16 nIndex;
 
         // offset from surrounding cell/shape
         Point aOffset( GetEEOffset() );
@@ -1633,7 +1634,7 @@ namespace accessibility
         Point aLogPoint( GetViewForwarder().PixelToLogic( aPoint, rCacheTF.GetMapMode() ) );
 
         // re-offset to parent (paragraph)
-        Rectangle aParaRect = rCacheTF.GetParaBounds( static_cast< sal_uInt16 >( GetParagraphIndex() ) );
+        Rectangle aParaRect = rCacheTF.GetParaBounds( GetParagraphIndex() );
         aLogPoint.Move( aParaRect.Left(), aParaRect.Top() );
 
         if( rCacheTF.GetIndexAtPoint( aLogPoint, nPara, nIndex ) &&
@@ -1878,7 +1879,7 @@ namespace accessibility
 			// NumberingLevel
 			if(rRes.Name.compareTo(::rtl::OUString::createFromAscii("NumberingLevel"))==0)
 			{				
-				const SvxNumBulletItem& rNumBullet = ( SvxNumBulletItem& )rCacheTF.GetParaAttribs(static_cast< sal_uInt16 >(GetParagraphIndex())).Get(EE_PARA_NUMBULLET);
+				const SvxNumBulletItem& rNumBullet = ( SvxNumBulletItem& )rCacheTF.GetParaAttribs(GetParagraphIndex()).Get(EE_PARA_NUMBULLET);
 				if(rNumBullet.GetNumRule()->GetLevelCount()==0)
 				{
 					rRes.Value <<= (sal_Int16)-1;
@@ -1902,7 +1903,7 @@ namespace accessibility
 			// NumberingRules	
 			if(rRes.Name.compareTo(::rtl::OUString::createFromAscii("NumberingRules"))==0)
 			{
-				SfxItemSet aAttribs = rCacheTF.GetParaAttribs( static_cast< sal_uInt16 >(GetParagraphIndex()) );
+				SfxItemSet aAttribs = rCacheTF.GetParaAttribs( GetParagraphIndex() );
 				sal_Bool bVis = ((const SfxUInt16Item&)aAttribs.Get( EE_PARA_BULLETSTATE )).GetValue() ? sal_True : sal_False;
 				if(bVis)
 				{
@@ -1928,12 +1929,12 @@ namespace accessibility
 		sal_Int32 nParaIndex = GetParagraphIndex();
 		SvxAccessibleTextAdapter& rCacheTF = GetTextForwarder();
 		sal_Int32 nAllFieldLen = 0;
-		sal_Int32 nField = rCacheTF.GetFieldCount(sal_uInt16(nParaIndex)), nFoundFieldIndex = -1;
+		sal_Int32 nField = rCacheTF.GetFieldCount(nParaIndex), nFoundFieldIndex = -1;
 		EFieldInfo ree;
 		sal_Int32  reeBegin=0, reeEnd=0;
 		for(sal_uInt16 j = 0; j < nField; j++)
 		{
-			ree = rCacheTF.GetFieldInfo(sal_uInt16(nParaIndex), j);
+			ree = rCacheTF.GetFieldInfo(nParaIndex, j);
 			reeBegin  = ree.aPosition.nIndex + nAllFieldLen;
 			reeEnd = reeBegin + ree.aCurrentText.Len();
 			nAllFieldLen += (ree.aCurrentText.Len() - 1);
@@ -1964,12 +1965,12 @@ namespace accessibility
 		sal_Int32 nParaIndex = GetParagraphIndex();
 		SvxAccessibleTextAdapter& rCacheTF = GetTextForwarder();
 		sal_Int32 nAllFieldLen = 0;
-		sal_Int32 nField = rCacheTF.GetFieldCount(sal_uInt16(nParaIndex)), nFoundFieldIndex = -1;
+		sal_Int32 nField = rCacheTF.GetFieldCount(nParaIndex), nFoundFieldIndex = -1;
 		EFieldInfo ree;
 		sal_Int32  reeBegin=0, reeEnd=0;
 		for(sal_uInt16 j = 0; j < nField; j++)
 		{
-			ree = rCacheTF.GetFieldInfo(sal_uInt16(nParaIndex), j);
+			ree = rCacheTF.GetFieldInfo(nParaIndex, j);
 			reeBegin  = ree.aPosition.nIndex + nAllFieldLen;
 			reeEnd = reeBegin + ree.aCurrentText.Len();
 			nAllFieldLen += (ree.aCurrentText.Len() - 1);
@@ -2003,7 +2004,7 @@ namespace accessibility
 			if( bExtend )
 			{				
 				//If there is a bullet before the field, should add the bullet length into the segment.
-				EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo(sal_uInt16(nParaIndex));
+				EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo(nParaIndex);
 				int nBulletLen = aBulletInfo.aText.Len();
 				if (nBulletLen > 0)
 				{
@@ -2048,7 +2049,7 @@ namespace accessibility
             // implGetAttributeRunBoundary() method there
             case AccessibleTextType::ATTRIBUTE_RUN:
             {
-                const sal_Int32 nTextLen = GetTextForwarder().GetTextLen( static_cast< sal_uInt16 >( GetParagraphIndex() ) );
+                const sal_Int32 nTextLen = GetTextForwarder().GetTextLen( GetParagraphIndex() );
 
                 if( nIndex == nTextLen )
                 {
@@ -2061,7 +2062,7 @@ namespace accessibility
 					//For the bullet paragraph, the bullet string is ingnored for IAText::attributes() function.
 					SvxTextForwarder&	rCacheTF = GetTextForwarder();
 					// MT IA2: Not used? sal_Int32 nBulletLen = 0;
-					EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( static_cast< sal_uInt16 >(GetParagraphIndex()) );
+					EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( GetParagraphIndex() );
 					if (aBulletInfo.bVisible)
 						nIndex += aBulletInfo.aText.Len();
 					if (nIndex != 0  && nIndex >= getCharacterCount())
@@ -2085,11 +2086,11 @@ namespace accessibility
             {
                 SvxTextForwarder&	rCacheTF = GetTextForwarder();
                 sal_Int32			nParaIndex = GetParagraphIndex();
-                // MT IA2: Not needed? sal_Int32 nTextLen = rCacheTF.GetTextLen( static_cast< sal_uInt16 >( nParaIndex ) );
+                // MT IA2: Not needed? sal_Int32 nTextLen = rCacheTF.GetTextLen( nParaIndex );
                 CheckPosition(nIndex);
 		if (nIndex != 0  && nIndex == getCharacterCount())
 			--nIndex;
-                sal_uInt16 nLine, nLineCount=rCacheTF.GetLineCount( static_cast< sal_uInt16 >( nParaIndex ) ); 
+                sal_uInt16 nLine, nLineCount=rCacheTF.GetLineCount( nParaIndex ); 
                 sal_Int32 nCurIndex;
                 //the problem is that rCacheTF.GetLineLen() will include the bullet length. But for the bullet line,
                 //the text value doesn't contain the bullet characters. all of the bullet and numbering info are exposed
@@ -2099,15 +2100,15 @@ namespace accessibility
                 {
                     if (nLine == 0)
                     {
-                        EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( static_cast< sal_uInt16 >(nParaIndex) );
+                        EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( nParaIndex );
                         if (aBulletInfo.bVisible)
                         {
                             //in bullet or numbering;
                             nBulletLen = aBulletInfo.aText.Len();
                         }
                     }
-                    //nCurIndex += rCacheTF.GetLineLen( static_cast< sal_uInt16 >( nParaIndex ), nLine);
-                    sal_Int32 nLineLen = rCacheTF.GetLineLen( static_cast< sal_uInt16 >( nParaIndex ), nLine);
+                    //nCurIndex += rCacheTF.GetLineLen(nParaIndex, nLine);
+                    sal_Int32 nLineLen = rCacheTF.GetLineLen(nParaIndex, nLine);
                     if (nLine == 0)
                         nCurIndex += nLineLen - nBulletLen;
                     else 
@@ -2116,7 +2117,7 @@ namespace accessibility
                     {
                         if (nLine ==0)
                         {
-                            //aResult.SegmentStart = nCurIndex - rCacheTF.GetLineLen(static_cast< sal_uInt16 >( nParaIndex ), nLine);
+                            //aResult.SegmentStart = nCurIndex - rCacheTF.GetLineLen(nParaIndex, nLine);
                             aResult.SegmentStart = 0;
                             aResult.SegmentEnd = nCurIndex;
                             //aResult.SegmentText = GetTextRange( aResult.SegmentStart, aResult.SegmentEnd );
@@ -2125,7 +2126,7 @@ namespace accessibility
                         }
                         else
                         {
-                            //aResult.SegmentStart = nCurIndex - rCacheTF.GetLineLen(static_cast< sal_uInt16 >( nParaIndex ), nLine);
+                            //aResult.SegmentStart = nCurIndex - rCacheTF.GetLineLen(nParaIndex, nLine);
                             aResult.SegmentStart = nCurIndex - nLineLen;
                             aResult.SegmentEnd = nCurIndex;
                             //aResult.SegmentText = GetTextRange( aResult.SegmentStart, aResult.SegmentEnd );
@@ -2163,7 +2164,7 @@ namespace accessibility
             // implGetAttributeRunBoundary() method there
             case AccessibleTextType::ATTRIBUTE_RUN:
             {
-                const sal_Int32 nTextLen = GetTextForwarder().GetTextLen( static_cast< sal_uInt16 >( GetParagraphIndex() ) );
+                const sal_Int32 nTextLen = GetTextForwarder().GetTextLen( GetParagraphIndex() );
                 sal_uInt16 nStartIndex, nEndIndex;
 
                 if( nIndex == nTextLen )
@@ -2198,11 +2199,11 @@ namespace accessibility
             {
                 SvxTextForwarder&	rCacheTF = GetTextForwarder();
                 sal_Int32			nParaIndex = GetParagraphIndex();
-                // MT IA2 not needed? sal_Int32 nTextLen = rCacheTF.GetTextLen( static_cast< sal_uInt16 >( nParaIndex ) );
+                // MT IA2 not needed? sal_Int32 nTextLen = rCacheTF.GetTextLen( nParaIndex );
 
                 CheckPosition(nIndex);
 
-                sal_uInt16 nLine, nLineCount=rCacheTF.GetLineCount( static_cast< sal_uInt16 >( nParaIndex ) ); 
+                sal_uInt16 nLine, nLineCount=rCacheTF.GetLineCount( nParaIndex ); 
                 //the problem is that rCacheTF.GetLineLen() will include the bullet length. But for the bullet line,
                 //the text value doesn't contain the bullet characters. all of the bullet and numbering info are exposed
                 //by the IAText::attributes(). So here must do special support for bullet line.
@@ -2214,7 +2215,7 @@ namespace accessibility
                     nLastIndex = nCurIndex;
                     if (nLine == 0)
                     {
-                        EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( static_cast< sal_uInt16 >(nParaIndex) );
+                        EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( nParaIndex );
                         if (aBulletInfo.bVisible)
                         {
                             //in bullet or numbering;
@@ -2225,7 +2226,7 @@ namespace accessibility
                         nLastLineLen = nCurLineLen - nBulletLen;
                     else
                         nLastLineLen = nCurLineLen;
-                    nCurLineLen = rCacheTF.GetLineLen(static_cast< sal_uInt16 >( nParaIndex ), nLine);
+                    nCurLineLen = rCacheTF.GetLineLen(nParaIndex, nLine);
                     //nCurIndex += nCurLineLen;
                     if (nLine == 0)
                         nCurIndex += nCurLineLen - nBulletLen;
@@ -2351,11 +2352,11 @@ namespace accessibility
             {
                 SvxTextForwarder&	rCacheTF = GetTextForwarder();
                 sal_Int32			nParaIndex = GetParagraphIndex();
-                // MT IA2 not needed? sal_Int32 nTextLen = rCacheTF.GetTextLen( static_cast< sal_uInt16 >( nParaIndex ) );
+                // MT IA2 not needed? sal_Int32 nTextLen = rCacheTF.GetTextLen( nParaIndex );
 
                 CheckPosition(nIndex);
 
-                sal_uInt16 nLine, nLineCount=rCacheTF.GetLineCount( static_cast< sal_uInt16 >( nParaIndex ) ); 
+                sal_uInt16 nLine, nLineCount=rCacheTF.GetLineCount( nParaIndex );
                 sal_Int32 nCurIndex; 
                 //the problem is that rCacheTF.GetLineLen() will include the bullet length. But for the bullet line,
                 //the text value doesn't contain the bullet characters. all of the bullet and numbering info are exposed
@@ -2366,15 +2367,15 @@ namespace accessibility
                 {
                     if (nLine == 0)
                     {
-                        EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( static_cast< sal_uInt16 >(nParaIndex) );
+                        EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( nParaIndex );
                         if (aBulletInfo.bVisible)
                         {
                             //in bullet or numbering;
                             nBulletLen = aBulletInfo.aText.Len();
                         }
                     }
-                    //nCurIndex += rCacheTF.GetLineLen(static_cast< sal_uInt16 >( nParaIndex ), nLine);
-                    sal_Int32 nLineLen = rCacheTF.GetLineLen( static_cast< sal_uInt16 >( nParaIndex ), nLine);
+                    //nCurIndex += rCacheTF.GetLineLen(nParaIndex, nLine);
+                    sal_Int32 nLineLen = rCacheTF.GetLineLen(nParaIndex, nLine);
                     
                     if (nLine == 0)
                         nCurIndex += nLineLen - nBulletLen;
@@ -2385,7 +2386,7 @@ namespace accessibility
                         nLine < nLineCount-1 )
                     {
                         aResult.SegmentStart = nCurIndex;
-                        aResult.SegmentEnd = nCurIndex + rCacheTF.GetLineLen(static_cast< sal_uInt16 >( nParaIndex ), nLine+1);
+                        aResult.SegmentEnd = nCurIndex + rCacheTF.GetLineLen(nParaIndex, nLine+1);
                         aResult.SegmentText = GetTextRange( aResult.SegmentStart + nBulletLen, aResult.SegmentEnd + nBulletLen);
                         break;
                     }                
@@ -2465,7 +2466,7 @@ namespace accessibility
 
             //Because bullet may occupy one or more characters, the TextAdapter will include bullet to calculate the selection. Add offset to handle bullet
             sal_Int32 nBulletLen = 0;
-            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( static_cast< sal_uInt16 >(GetParagraphIndex()) );
+            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( GetParagraphIndex() );
             if( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND && aBulletInfo.bVisible )
                         nBulletLen = aBulletInfo.aText.Len();
             // save current selection
@@ -2504,7 +2505,7 @@ namespace accessibility
 
             // Because bullet may occupy one or more characters, the TextAdapter will include bullet to calculate the selection. Add offset to handle bullet
             sal_Int32 nBulletLen = 0;
-            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( static_cast< sal_uInt16 >(GetParagraphIndex()) );
+            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( GetParagraphIndex() );
             if( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND && aBulletInfo.bVisible )
                         nBulletLen = aBulletInfo.aText.Len();
             ESelection aSelection = MakeSelection (nStartIndex + nBulletLen, nEndIndex + nBulletLen);
@@ -2541,7 +2542,7 @@ namespace accessibility
 
             // Because bullet may occupy one or more characters, the TextAdapter will include bullet to calculate the selection. Add offset to handle bullet
             sal_Int32 nBulletLen = 0;
-            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( static_cast< sal_uInt16 >(GetParagraphIndex()) );
+            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( GetParagraphIndex() );
             if( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND && aBulletInfo.bVisible )
                         nBulletLen = aBulletInfo.aText.Len();
             //if( !rCacheTF.IsEditable( MakeSelection(nIndex) ) )
@@ -2580,7 +2581,7 @@ namespace accessibility
 
             // Because bullet may occupy one or more characters, the TextAdapter will include bullet to calculate the selection. Add offset to handle bullet
             sal_Int32 nBulletLen = 0;
-            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( static_cast< sal_uInt16 >(GetParagraphIndex()) );
+            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( GetParagraphIndex() );
             if( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND && aBulletInfo.bVisible )
                         nBulletLen = aBulletInfo.aText.Len();
             ESelection aSelection = MakeSelection (nStartIndex + nBulletLen, nEndIndex + nBulletLen);
@@ -2622,7 +2623,7 @@ namespace accessibility
 
             // Because bullet may occupy one or more characters, the TextAdapter will include bullet to calculate the selection. Add offset to handle bullet
             sal_Int32 nBulletLen = 0;
-            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( static_cast< sal_uInt16 >(GetParagraphIndex()) );
+            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( GetParagraphIndex() );
             if( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND && aBulletInfo.bVisible )
                         nBulletLen = aBulletInfo.aText.Len();
 
@@ -2665,7 +2666,7 @@ namespace accessibility
 
             // Because bullet may occupy one or more characters, the TextAdapter will include bullet to calculate the selection. Add offset to handle bullet
             sal_Int32 nBulletLen = 0;
-            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( static_cast< sal_uInt16 >(GetParagraphIndex()) );
+            EBulletInfo aBulletInfo = GetTextForwarder().GetBulletInfo( GetParagraphIndex() );
             if( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND && aBulletInfo.bVisible )
                         nBulletLen = aBulletInfo.aText.Len();
             ESelection aSelection = MakeSelection (nStartIndex + nBulletLen, nEndIndex + nBulletLen);
@@ -2701,7 +2702,7 @@ namespace accessibility
             // AccessibleEmptyEditSource relies on this behaviour
             GetEditViewForwarder( sal_True );
             SvxAccessibleTextAdapter& rCacheTF = GetTextForwarder();	// MUST be after GetEditViewForwarder(), see method docs
-            sal_uInt16 nPara = static_cast< sal_uInt16 >( GetParagraphIndex() );
+            sal_uInt32 nPara = GetParagraphIndex();
 
             DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
                        "AccessibleEditableTextPara::setAttributes: index value overflow");
@@ -3039,8 +3040,8 @@ namespace accessibility
         if (bValidPara)
         {
             // we explicitly allow for the index to point at the character right behind the text
-            if (0 <= nIndex && nIndex <= rCacheTF.GetTextLen( static_cast< sal_uInt16 >(nPara) ))
-                nRes = rCacheTF.GetLineNumberAtIndex( static_cast< sal_uInt16 >(nPara), static_cast< sal_uInt16 >(nIndex) );
+            if (0 <= nIndex && nIndex <= rCacheTF.GetTextLen( nPara ))
+                nRes = rCacheTF.GetLineNumberAtIndex( nPara, static_cast< sal_uInt16 >(nIndex) );
             else
                 throw lang::IndexOutOfBoundsException();
         }
@@ -3059,10 +3060,10 @@ namespace accessibility
         DBG_ASSERT( bValidPara, "getTextAtLineNumber: current paragraph index out of range" );
         if (bValidPara)
         {
-            if (0 <= nLineNo && nLineNo < rCacheTF.GetLineCount( static_cast< sal_uInt16 >(nPara) ))
+            if (0 <= nLineNo && nLineNo < rCacheTF.GetLineCount( nPara ))
             {
                 sal_uInt16 nStart = 0, nEnd = 0;
-                rCacheTF.GetLineBoundaries( nStart, nEnd, static_cast< sal_uInt16 >(nPara), static_cast< sal_uInt16 >(nLineNo) );
+                rCacheTF.GetLineBoundaries( nStart, nEnd, nPara, static_cast< sal_uInt16 >(nLineNo) );
                 if (nStart != 0xFFFF && nEnd != 0xFFFF)
                 {
                     try
diff --git a/main/editeng/source/accessibility/AccessibleHyperlink.cxx b/main/editeng/source/accessibility/AccessibleHyperlink.cxx
index 82ebffded5..78b68f9f63 100644
--- a/main/editeng/source/accessibility/AccessibleHyperlink.cxx
+++ b/main/editeng/source/accessibility/AccessibleHyperlink.cxx
@@ -45,7 +45,7 @@ using namespace ::com::sun::star;
 namespace accessibility
 {
 
-    AccessibleHyperlink::AccessibleHyperlink( SvxAccessibleTextAdapter& r, SvxFieldItem* p, sal_uInt16 nP, sal_uInt16 nR, sal_Int32 nStt, sal_Int32 nEnd, const ::rtl::OUString& rD ) 
+    AccessibleHyperlink::AccessibleHyperlink( SvxAccessibleTextAdapter& r, SvxFieldItem* p, sal_uInt32 nP, sal_uInt16 nR, sal_Int32 nStt, sal_Int32 nEnd, const ::rtl::OUString& rD ) 
     : rTA( r )
     { 
         pFld = p; 
diff --git a/main/editeng/source/accessibility/AccessibleHyperlink.hxx b/main/editeng/source/accessibility/AccessibleHyperlink.hxx
index 3f950b0159..8593b39efc 100644
--- a/main/editeng/source/accessibility/AccessibleHyperlink.hxx
+++ b/main/editeng/source/accessibility/AccessibleHyperlink.hxx
@@ -47,12 +47,14 @@ namespace accessibility
         
         SvxAccessibleTextAdapter& rTA;
         SvxFieldItem* pFld;
-    	sal_uInt16 nPara, nRealIdx;  // EE values
+    	// EE values
+    	sal_uInt32 nPara;
+    	sal_uInt16 nRealIdx;
     	sal_Int32 nStartIdx, nEndIdx;   // translated values
     	::rtl::OUString aDescription;
 
     public:
-    	AccessibleHyperlink( SvxAccessibleTextAdapter& r, SvxFieldItem* p, sal_uInt16 nP, sal_uInt16 nR, sal_Int32 nStt, sal_Int32 nEnd, const ::rtl::OUString& rD );
+    	AccessibleHyperlink( SvxAccessibleTextAdapter& r, SvxFieldItem* p, sal_uInt32 nP, sal_uInt16 nR, sal_Int32 nStt, sal_Int32 nEnd, const ::rtl::OUString& rD );
     	~AccessibleHyperlink();
     	
     	// XAccessibleAction
diff --git a/main/editeng/source/accessibility/AccessibleImageBullet.cxx b/main/editeng/source/accessibility/AccessibleImageBullet.cxx
index 56e123e17d..8800502997 100644
--- a/main/editeng/source/accessibility/AccessibleImageBullet.cxx
+++ b/main/editeng/source/accessibility/AccessibleImageBullet.cxx
@@ -214,7 +214,7 @@ namespace accessibility
                    "AccessibleImageBullet::getLocale: paragraph index value overflow");
 
         // return locale of first character in the paragraph
-        return SvxLanguageToLocale(aLocale, GetTextForwarder().GetLanguage( static_cast< sal_uInt16 >( GetParagraphIndex() ), 0 ));
+        return SvxLanguageToLocale(aLocale, GetTextForwarder().GetLanguage( GetParagraphIndex(), 0 ));
     }
 
     void SAL_CALL AccessibleImageBullet::addEventListener( const uno::Reference< XAccessibleEventListener >& xListener ) throw (uno::RuntimeException)
@@ -267,8 +267,8 @@ namespace accessibility
                    "AccessibleEditableTextPara::getBounds: index value overflow");
 
         SvxTextForwarder& rCacheTF = GetTextForwarder();
-        EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( static_cast< sal_uInt16 > (GetParagraphIndex()) );
-        Rectangle aParentRect = rCacheTF.GetParaBounds( static_cast< sal_uInt16 >( GetParagraphIndex() ) );
+        EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( GetParagraphIndex() );
+        Rectangle aParentRect = rCacheTF.GetParaBounds( GetParagraphIndex() );
 
         if( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND &&
             aBulletInfo.bVisible &&
diff --git a/main/editeng/source/accessibility/AccessibleStaticTextBase.cxx b/main/editeng/source/accessibility/AccessibleStaticTextBase.cxx
index db7dedc586..43fb76fc1d 100644
--- a/main/editeng/source/accessibility/AccessibleStaticTextBase.cxx
+++ b/main/editeng/source/accessibility/AccessibleStaticTextBase.cxx
@@ -98,8 +98,8 @@ sal_Unicode cNewLine(0x0a);
                    nEndIndex >= 0 && nEndIndex <= USHRT_MAX ,
                    "AccessibleStaticTextBase_Impl::MakeSelection: index value overflow");
 
-        return ESelection( static_cast< sal_uInt16 >(nStartPara), static_cast< sal_uInt16 >(nStartIndex),
-                           static_cast< sal_uInt16 >(nEndPara), static_cast< sal_uInt16 >(nEndIndex) );
+        return ESelection( nStartPara, static_cast< sal_uInt16 >(nStartIndex),
+                           nEndPara, static_cast< sal_uInt16 >(nEndIndex) );
     }
 
 	//------------------------------------------------------------------------
@@ -341,7 +341,7 @@ sal_Unicode cNewLine(0x0a);
 
         sal_Int32 nIndex = 0;
         if( mpTextParagraph )
-            nIndex = mpTextParagraph->GetTextForwarder().GetLineCount( static_cast< sal_uInt16 >(nParagraph) );
+            nIndex = mpTextParagraph->GetTextForwarder().GetLineCount( nParagraph );
         return nIndex;
     }    
 
@@ -394,7 +394,7 @@ sal_Unicode cNewLine(0x0a);
                            nFlatIndex - nCurrIndex + nCurrCount >= 0 && nFlatIndex - nCurrIndex + nCurrCount <= USHRT_MAX ,
                            "AccessibleStaticTextBase_Impl::Index2Internal: index value overflow");
 
-                return EPosition( static_cast< sal_uInt16 >(nCurrPara), static_cast< sal_uInt16 >(nFlatIndex - nCurrIndex + nCurrCount) );
+                return EPosition( nCurrPara, static_cast< sal_uInt16 >(nFlatIndex - nCurrIndex + nCurrCount) );
             }
         }
 
@@ -406,7 +406,7 @@ sal_Unicode cNewLine(0x0a);
                        nFlatIndex - nCurrIndex + nCurrCount >= 0 && nFlatIndex - nCurrIndex + nCurrCount <= USHRT_MAX ,
                        "AccessibleStaticTextBase_Impl::Index2Internal: index value overflow");
 
-            return EPosition( static_cast< sal_uInt16 >(nCurrPara-1), static_cast< sal_uInt16 >(nFlatIndex - nCurrIndex + nCurrCount) );
+            return EPosition( nCurrPara-1, static_cast< sal_uInt16 >(nFlatIndex - nCurrIndex + nCurrCount) );
         }
 
         // not found? Out of bounds
@@ -775,7 +775,7 @@ sal_Unicode cNewLine(0x0a);
 
             // #112814# Use correct index offset
             if ( ( nIndex = rPara.getIndexAtPoint( aPoint ) ) != -1 )
-                return mpImpl->Internal2Index( EPosition(sal::static_int_cast<sal_uInt16>(i),
+                return mpImpl->Internal2Index( EPosition(i,
                                                          sal::static_int_cast<sal_uInt16>(nIndex)) );
         }
 
diff --git a/main/editeng/source/editeng/baselist.hxx b/main/editeng/source/editeng/baselist.hxx
new file mode 100644
index 0000000000..81f3481961
--- /dev/null
+++ b/main/editeng/source/editeng/baselist.hxx
@@ -0,0 +1,51 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+
+
+#ifndef _EDITENG_BASELIST_HXX
+#define _EDITENG_BASELIST_HXX
+
+template<class T>
+class BaseList
+{
+    std::vector<T*> contents;
+public:
+    sal_uInt32 Count() const { return contents.size(); }
+    T* GetObject( sal_uInt32 index ) const { return contents[index]; }
+    T* operator[]( std::size_t index ) const { return contents[index]; }
+    T* const* GetData() const { return &contents[0]; }
+    void Insert( T *node, sal_uInt32 position ) { contents.insert( contents.begin() + position, node); }
+    void Replace( T *node, sal_uInt32 position )
+    {
+        if ( position < contents.size() )
+            contents[ position ] = node;
+    }
+    void Remove( sal_uInt32 first, sal_uInt32 count = 1 ) { contents.erase( contents.begin() + first, contents.begin() + first + count ); }
+    void DeleteAndDestroy( sal_uInt32 first, sal_uInt32 count )
+    {
+        for ( sal_uInt32 n = first; n < first + count; n++ )
+            delete GetObject( n );
+        Remove( first, first + count );
+    }
+};
+
+#endif
diff --git a/main/editeng/source/editeng/editdbg.cxx b/main/editeng/source/editeng/editdbg.cxx
index ddc18b9ace..de0350eadb 100644
--- a/main/editeng/source/editeng/editdbg.cxx
+++ b/main/editeng/source/editeng/editdbg.cxx
@@ -333,7 +333,7 @@ void EditDbg::ShowEditEngineData( EditEngine* pEE, sal_Bool bInfoBox )
 	fprintf( fp, "================================================================================" );
 	fprintf( fp, "\n==================   Dokument   ================================================" );
 	fprintf( fp, "\n================================================================================" );
-	for ( sal_uInt16 nPortion = 0; nPortion < pEE->pImpEditEngine->GetParaPortions(). Count(); nPortion++)
+	for ( sal_uInt32 nPortion = 0; nPortion < pEE->pImpEditEngine->GetParaPortions(). Count(); nPortion++)
 	{
 
 		ParaPortion* pPPortion = pEE->pImpEditEngine->GetParaPortions().GetObject(nPortion );
diff --git a/main/editeng/source/editeng/editdoc.cxx b/main/editeng/source/editeng/editdoc.cxx
index 2fb61447ff..df98e20852 100644
--- a/main/editeng/source/editeng/editdoc.cxx
+++ b/main/editeng/source/editeng/editdoc.cxx
@@ -250,8 +250,6 @@ sal_uInt16 aV5Map[] = {
 	4035, 4036, 4037, 4038
 };
 
-SV_IMPL_PTRARR( DummyContentList, ContentNode* );
-
 int SAL_CALL CompareStart( const void* pFirst, const void* pSecond )
 {
 	if ( (*((EditCharAttrib**)pFirst))->GetStart() < (*((EditCharAttrib**)pSecond))->GetStart() )
@@ -649,8 +647,8 @@ sal_Bool EditSelection::Adjust( const ContentList& rNodes )
 	ContentNode* pStartNode = aStartPaM.GetNode();
 	ContentNode* pEndNode = aEndPaM.GetNode();
 
-	sal_uInt16 nStartNode = rNodes.GetPos( pStartNode );
-	sal_uInt16 nEndNode = rNodes.GetPos( pEndNode );
+	sal_uInt32 nStartNode = rNodes.GetPos( pStartNode );
+	sal_uInt32 nEndNode = rNodes.GetPos( pEndNode );
 
 	DBG_ASSERT( nStartNode != USHRT_MAX, "Node im Wald in Adjust(1)" );
 	DBG_ASSERT( nEndNode != USHRT_MAX, "Node im Wald in Adjust(2)" );
@@ -1238,7 +1236,7 @@ EditDoc::~EditDoc()
 
 void EditDoc::ImplDestroyContents()
 {
-	for ( sal_uInt16 nNode = Count(); nNode; )
+	for ( sal_uInt32 nNode = Count(); nNode; )
 		RemoveItemsFromPool( GetObject( --nNode ) );
 	DeleteAndDestroy( 0, Count() );
 }
@@ -1332,7 +1330,7 @@ void EditDoc::CreateDefFont( sal_Bool bUseStyles )
 	aDefFont.SetVertical( IsVertical() );
 	aDefFont.SetOrientation( IsVertical() ? 2700 : 0 );
 
-	for ( sal_uInt16 nNode = 0; nNode < Count(); nNode++ )
+	for ( sal_uInt32 nNode = 0; nNode < Count(); nNode++ )
 	{
 		ContentNode* pNode = GetObject( nNode );
 		pNode->GetCharAttribs().GetDefFont() = aDefFont;
@@ -1360,7 +1358,7 @@ XubString EditDoc::GetSepStr( LineEnd eEnd )
 XubString EditDoc::GetText( LineEnd eEnd ) const
 {
 	sal_uLong nLen = GetTextLen();
-	sal_uInt16 nNodes = Count();
+	sal_uInt32 nNodes = Count();
 
 	String aSep = EditDoc::GetSepStr( eEnd );
 	sal_uInt16 nSepSize = aSep.Len();
@@ -1374,8 +1372,8 @@ XubString EditDoc::GetText( LineEnd eEnd ) const
 	}
 	xub_Unicode* pStr = new xub_Unicode[nLen+1];
 	xub_Unicode* pCur = pStr;
-	sal_uInt16 nLastNode = nNodes-1;
-	for ( sal_uInt16 nNode = 0; nNode < nNodes; nNode++ )
+	sal_uInt32 nLastNode = nNodes-1;
+	for ( sal_uInt32 nNode = 0; nNode < nNodes; nNode++ )
 	{
 		XubString aTmp( GetParaAsString( GetObject(nNode) ) );
 		memcpy( pCur, aTmp.GetBuffer(), aTmp.Len()*sizeof(sal_Unicode) );
@@ -1392,7 +1390,7 @@ XubString EditDoc::GetText( LineEnd eEnd ) const
 	return aASCIIText;
 }
 
-XubString EditDoc::GetParaAsString( sal_uInt16 nNode ) const
+XubString EditDoc::GetParaAsString( sal_uInt32 nNode ) const
 {
 	return GetParaAsString( SaveGetObject( nNode ) );
 }
@@ -1444,7 +1442,7 @@ XubString EditDoc::GetParaAsString( ContentNode* pNode, sal_uInt16 nStartPos, sa
 sal_uLong EditDoc::GetTextLen() const
 {
 	sal_uLong nLen = 0;
-	for ( sal_uInt16 nNode = 0; nNode < Count(); nNode++ )
+	for ( sal_uInt32 nNode = 0; nNode < Count(); nNode++ )
 	{
 		ContentNode* pNode = GetObject( nNode );
 		nLen += pNode->Len();
@@ -1545,7 +1543,7 @@ EditPaM EditDoc::InsertParaBreak( EditPaM aPaM, sal_Bool bKeepEndingAttribs )
 {
 	DBG_ASSERT( aPaM.GetNode(), "Blinder PaM in EditDoc::InsertParaBreak" );
 	ContentNode* pCurNode = aPaM.GetNode();
-	sal_uInt16 nPos = GetPos( pCurNode );
+	sal_uInt32 nPos = GetPos( pCurNode );
 	XubString aStr = aPaM.GetNode()->Copy( aPaM.GetIndex() );
 	aPaM.GetNode()->Erase( aPaM.GetIndex() );
 
@@ -1612,7 +1610,7 @@ EditPaM EditDoc::ConnectParagraphs( ContentNode* pLeft, ContentNode* pRight )
 
 	// der rechte verschwindet.
 	RemoveItemsFromPool( pRight );
-	sal_uInt16 nRight = GetPos( pRight );
+	sal_uInt32 nRight = GetPos( pRight );
 	Remove( nRight );
 	delete pRight;
 
diff --git a/main/editeng/source/editeng/editdoc.hxx b/main/editeng/source/editeng/editdoc.hxx
index a468b165e9..f38782ce63 100644
--- a/main/editeng/source/editeng/editdoc.hxx
+++ b/main/editeng/source/editeng/editdoc.hxx
@@ -28,6 +28,7 @@
 #include <com/sun/star/i18n/XExtendedInputSequenceChecker.hpp>
 #endif
 
+#include <baselist.hxx>
 #include <editattr.hxx>
 #include <edtspell.hxx>
 #include <editeng/svxfont.hxx>
@@ -58,11 +59,11 @@ class EditDoc;
 
 struct EPaM
 {
-	sal_uInt16 nPara;
+	sal_uInt32 nPara;
 	sal_uInt16 nIndex;
 
 	EPaM()								{ nPara = 0; nIndex = 0; }
-	EPaM( sal_uInt16 nP, sal_uInt16 nI )		{ nPara = nP; nIndex = nI; }
+	EPaM( sal_uInt32 nP, sal_uInt16 nI )		{ nPara = nP; nIndex = nI; }
 	EPaM( const EPaM& r)				{ nPara = r.nPara; nIndex = r.nIndex; }
 	EPaM& operator = ( const EPaM& r )	{ nPara = r.nPara; nIndex = r.nIndex; return *this; }
 	inline sal_Bool operator == ( const EPaM& r ) const;
@@ -281,14 +282,13 @@ public:
 };
 
 typedef ContentNode* ContentNodePtr;
-SV_DECL_PTRARR( DummyContentList, ContentNodePtr, 0, 4 )
 
-class ContentList : public DummyContentList
+class ContentList : public BaseList<ContentNode>
 {
-  sal_uInt16 nLastCache;
+    sal_uInt32 nLastCache;
 public:
-  ContentList() : DummyContentList( 0, 4 ), nLastCache(0) {}
-  sal_uInt16 GetPos( const ContentNodePtr &rPtr ) const;
+    ContentList() : nLastCache(0) {}
+    sal_uInt32 GetPos( const ContentNodePtr &rPtr ) const;
 };
 
 // -------------------------------------------------------------------------
@@ -447,8 +447,8 @@ private:
 	sal_uInt16			nStartPosX;
 	sal_uInt16			nStart;		// koennte durch nStartPortion ersetzt werden
 	sal_uInt16			nEnd;       // koennte durch nEndPortion ersetzt werden
-	sal_uInt16			nStartPortion;
-	sal_uInt16 			nEndPortion;
+	sal_uInt16			nStartPortion; // index of TextPortion in TextPortionList
+	sal_uInt16 			nEndPortion; // index of TextPortion in TextPortionList
 	sal_uInt16			nHeight;	// Gesamthoehe der Zeile
 	sal_uInt16			nTxtHeight;	// Reine Texthoehe
 	sal_uInt16			nCrsrHeight;	// Bei Konturfluss hohe Zeilen => Cursor zu gro?.
@@ -609,26 +609,25 @@ public:
 };
 
 typedef ParaPortion* ParaPortionPtr;
-SV_DECL_PTRARR( DummyParaPortionList, ParaPortionPtr, 0, 4 )
 
 // -------------------------------------------------------------------------
 // class ParaPortionList
 // -------------------------------------------------------------------------
-class ParaPortionList : public DummyParaPortionList
+class ParaPortionList : public BaseList<ParaPortion>
 {
-	sal_uInt16 nLastCache;
+	sal_uInt32 nLastCache;
 public:
 					ParaPortionList();
 					~ParaPortionList();
 
 	void			Reset();
 	long			GetYOffset( ParaPortion* pPPortion );
-	sal_uInt16			FindParagraph( long nYOffset );
+	sal_uInt32			FindParagraph( long nYOffset );
 
-	inline ParaPortion*	SaveGetObject( sal_uInt16 nPos ) const
+	inline ParaPortion*	SaveGetObject( sal_uInt32 nPos ) const
 		{ return ( nPos < Count() ) ? GetObject( nPos ) : 0; }
 
-	sal_uInt16                  GetPos( const ParaPortionPtr &rPtr ) const;
+	sal_uInt32                  GetPos( const ParaPortionPtr &rPtr ) const;
 
 	// temporaer:
 	void			DbgCheck( EditDoc& rDoc );
@@ -674,15 +673,15 @@ class DeletedNodeInfo
 {
 private:
 	sal_uIntPtr 	nInvalidAdressPtr;
-	sal_uInt16	nInvalidParagraph;
+	sal_uInt32	nInvalidParagraph;
 
 public:
-			DeletedNodeInfo( sal_uIntPtr nInvAdr, sal_uInt16 nPos )
+			DeletedNodeInfo( sal_uIntPtr nInvAdr, sal_uInt32 nPos )
 											{ 	nInvalidAdressPtr = nInvAdr;
 												nInvalidParagraph = nPos; }
 
 	sal_uIntPtr	GetInvalidAdress()				{	return nInvalidAdressPtr; }
-	sal_uInt16	GetPosition()					{	return nInvalidParagraph; }
+	sal_uInt32	GetPosition()					{	return nInvalidParagraph; }
 };
 
 typedef DeletedNodeInfo* DeletedNodeInfoPtr;
@@ -742,7 +741,7 @@ public:
 	String			GetText( LineEnd eEnd ) const;
 	sal_uLong			GetTextLen() const;
 
-	XubString 		GetParaAsString( sal_uInt16 nNode ) const;
+	XubString 		GetParaAsString( sal_uInt32 nNode ) const;
 	XubString 		GetParaAsString( ContentNode* pNode, sal_uInt16 nStartPos = 0, sal_uInt16 nEndPos = 0xFFFF, sal_Bool bResolveFields = sal_True ) const;
 
 	inline EditPaM	GetStartPaM() const;
@@ -760,8 +759,8 @@ public:
 	sal_Bool			RemoveAttribs( ContentNode* pNode, sal_uInt16 nStart, sal_uInt16 nEnd, EditCharAttrib*& rpStarting, EditCharAttrib*& rpEnding, sal_uInt16 nWhich = 0 );
 	void			FindAttribs( ContentNode* pNode, sal_uInt16 nStartPos, sal_uInt16 nEndPos, SfxItemSet& rCurSet );
 
-	sal_uInt16			GetPos( ContentNode* pNode ) const { return ContentList::GetPos(pNode); }
-	ContentNode*	SaveGetObject( sal_uInt16 nPos ) const { return ( nPos < Count() ) ? GetObject( nPos ) : 0; }
+	sal_uInt32			GetPos( ContentNode* pNode ) const { return ContentList::GetPos(pNode); }
+	ContentNode*	SaveGetObject( sal_uInt32 nPos ) const { return ( nPos < Count() ) ? GetObject( nPos ) : 0; }
 
 	static XubString	GetSepStr( LineEnd eEnd );
 };
diff --git a/main/editeng/source/editeng/editdoc2.cxx b/main/editeng/source/editeng/editdoc2.cxx
index ada156ef0d..91f315ef05 100644
--- a/main/editeng/source/editeng/editdoc2.cxx
+++ b/main/editeng/source/editeng/editdoc2.cxx
@@ -321,21 +321,21 @@ void ParaPortion::CorrectValuesBehindLastFormattedLine( sal_uInt16 nLastFormatte
 
 // Shared reverse lookup acceleration pieces ...
 
-static sal_uInt16 FastGetPos( const VoidPtr *pPtrArray, sal_uInt16 nPtrArrayLen,
-						  VoidPtr pPtr, sal_uInt16 &rLastPos )
+static sal_uInt32 FastGetPos( const VoidPtr *pPtrArray, sal_uInt32 nPtrArrayLen,
+						  VoidPtr pPtr, sal_uInt32 &rLastPos )
 {
   // Through certain filter code-paths we do a lot of appends, which in
   // turn call GetPos - creating some N^2 nightmares. If we have a
   // non-trivially large list, do a few checks from the end first.
   if( rLastPos > 16 )
     {
-      sal_uInt16 nEnd;
+      sal_uInt32 nEnd;
       if (rLastPos > nPtrArrayLen - 2)
 		nEnd = nPtrArrayLen;
       else
 		nEnd = rLastPos + 2;
 
-      for( sal_uInt16 nIdx = rLastPos - 2; nIdx < nEnd; nIdx++ )
+      for( sal_uInt32 nIdx = rLastPos - 2; nIdx < nEnd; nIdx++ )
 		{
 		  if( pPtrArray[ nIdx ] == pPtr )
 			{
@@ -345,10 +345,10 @@ static sal_uInt16 FastGetPos( const VoidPtr *pPtrArray, sal_uInt16 nPtrArrayLen,
 		}
     }
   // The world's lamest linear search from svarray ...
-  for( sal_uInt16 nIdx = 0; nIdx < nPtrArrayLen; nIdx++ )
+  for( sal_uInt32 nIdx = 0; nIdx < nPtrArrayLen; nIdx++ )
 	if (pPtrArray[ nIdx ] == pPtr )
 	  return rLastPos = nIdx;
-  return USHRT_MAX;
+  return EE_PARA_NOT_FOUND;
 }
 
 // -------------------------------------------------------------------------
@@ -363,14 +363,14 @@ ParaPortionList::~ParaPortionList()
 	Reset();
 }
 
-sal_uInt16 ParaPortionList::GetPos( const ParaPortionPtr &rPtr ) const
+sal_uInt32 ParaPortionList::GetPos( const ParaPortionPtr &rPtr ) const
 {
 	return FastGetPos( reinterpret_cast<const VoidPtr *>( GetData() ),
 					   Count(), static_cast<VoidPtr>( rPtr ),
 					   ((ParaPortionList *)this)->nLastCache );
 }
 
-sal_uInt16 ContentList::GetPos( const ContentNodePtr &rPtr ) const
+sal_uInt32 ContentList::GetPos( const ContentNodePtr &rPtr ) const
 {
     return FastGetPos( reinterpret_cast<const VoidPtr *>( GetData() ),
 					   Count(), static_cast<VoidPtr>( rPtr ),
@@ -379,7 +379,7 @@ sal_uInt16 ContentList::GetPos( const ContentNodePtr &rPtr ) const
 
 void ParaPortionList::Reset()
 {
-	for ( sal_uInt16 nPortion = 0; nPortion < Count(); nPortion++ )
+	for ( sal_uInt32 nPortion = 0; nPortion < Count(); nPortion++ )
 		delete GetObject( nPortion );
 	Remove( 0, Count() );
 }
@@ -387,7 +387,7 @@ void ParaPortionList::Reset()
 long ParaPortionList::GetYOffset( ParaPortion* pPPortion )
 {
 	long nHeight = 0;
-	for ( sal_uInt16 nPortion = 0; nPortion < Count(); nPortion++ )
+	for ( sal_uInt32 nPortion = 0; nPortion < Count(); nPortion++ )
 	{
 		ParaPortion* pTmpPortion = GetObject(nPortion);
 		if ( pTmpPortion == pPPortion )
@@ -398,16 +398,16 @@ long ParaPortionList::GetYOffset( ParaPortion* pPPortion )
 	return nHeight;
 }
 
-sal_uInt16 ParaPortionList::FindParagraph( long nYOffset )
+sal_uInt32 ParaPortionList::FindParagraph( long nYOffset )
 {
 	long nY = 0;
-	for ( sal_uInt16 nPortion = 0; nPortion < Count(); nPortion++ )
+	for ( sal_uInt32 nPortion = 0; nPortion < Count(); nPortion++ )
 	{
 		nY += GetObject(nPortion)->GetHeight(); // sollte auch bei !bVisible richtig sein!
 		if ( nY > nYOffset )
 			return nPortion;
 	}
-	return 0xFFFF;	// solte mal ueber EE_PARA_NOT_FOUND erreicht werden!
+	return EE_PARA_NOT_FOUND;
 }
 
 void ParaPortionList::DbgCheck( EditDoc&
@@ -418,7 +418,7 @@ void ParaPortionList::DbgCheck( EditDoc&
 {
 #ifdef DBG_UTIL
 	DBG_ASSERT( Count() == rDoc.Count(), "ParaPortionList::DbgCheck() - Count() ungleich!" );
-	for ( sal_uInt16 i = 0; i < Count(); i++ )
+	for ( sal_uInt32 i = 0; i < Count(); i++ )
 	{
 		DBG_ASSERT( SaveGetObject(i), "ParaPortionList::DbgCheck() - Null-Pointer in Liste!" );
 		DBG_ASSERT( GetObject(i)->GetNode(), "ParaPortionList::DbgCheck() - Null-Pointer in Liste(2)!" );
diff --git a/main/editeng/source/editeng/editeng.cxx b/main/editeng/source/editeng/editeng.cxx
index 08b6d01d10..d8e272c109 100644
--- a/main/editeng/source/editeng/editeng.cxx
+++ b/main/editeng/source/editeng/editeng.cxx
@@ -558,7 +558,7 @@ sal_uInt16 EditEngine::GetScriptType( const ESelection& rSelection ) const
 	return pImpEditEngine->GetScriptType( aSel );
 }
 
-LanguageType EditEngine::GetLanguage( sal_uInt16 nPara, sal_uInt16 nPos ) const
+LanguageType EditEngine::GetLanguage( sal_uInt32 nPara, sal_uInt16 nPos ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
     ContentNode* pNode = pImpEditEngine->GetEditDoc().SaveGetObject( nPara );
@@ -690,13 +690,13 @@ sal_uInt32 EditEngine::GetTextLen() const
 	return pImpEditEngine->GetEditDoc().GetTextLen();
 }
 
-sal_uInt16 EditEngine::GetParagraphCount() const
+sal_uInt32 EditEngine::GetParagraphCount() const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	return pImpEditEngine->aEditDoc.Count();
 }
 
-sal_uInt16 EditEngine::GetLineCount( sal_uInt16 nParagraph ) const
+sal_uInt16 EditEngine::GetLineCount( sal_uInt32 nParagraph ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
     if ( !pImpEditEngine->IsFormatted() )
@@ -704,7 +704,7 @@ sal_uInt16 EditEngine::GetLineCount( sal_uInt16 nParagraph ) const
 	return pImpEditEngine->GetLineCount( nParagraph );
 }
 
-sal_uInt16 EditEngine::GetLineLen( sal_uInt16 nParagraph, sal_uInt16 nLine ) const
+sal_uInt16 EditEngine::GetLineLen( sal_uInt32 nParagraph, sal_uInt16 nLine ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
     if ( !pImpEditEngine->IsFormatted() )
@@ -712,7 +712,7 @@ sal_uInt16 EditEngine::GetLineLen( sal_uInt16 nParagraph, sal_uInt16 nLine ) con
 	return pImpEditEngine->GetLineLen( nParagraph, nLine );
 }
     
-void EditEngine::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const
+void EditEngine::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nParagraph, sal_uInt16 nLine ) const
 {
     DBG_CHKTHIS( EditEngine, 0 );
     if ( !pImpEditEngine->IsFormatted() )
@@ -720,7 +720,7 @@ void EditEngine::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16
     return pImpEditEngine->GetLineBoundaries( rStart, rEnd, nParagraph, nLine );
 }    
 
-sal_uInt16 EditEngine::GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+sal_uInt16 EditEngine::GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
     DBG_CHKTHIS( EditEngine, 0 );
     if ( !pImpEditEngine->IsFormatted() )
@@ -728,7 +728,7 @@ sal_uInt16 EditEngine::GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex
     return pImpEditEngine->GetLineNumberAtIndex( nPara, nIndex );
 }    
 
-sal_uInt32 EditEngine::GetLineHeight( sal_uInt16 nParagraph, sal_uInt16 nLine )
+sal_uInt32 EditEngine::GetLineHeight( sal_uInt32 nParagraph, sal_uInt16 nLine )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	// Falls jemand mit einer leeren Engine ein GetLineHeight() macht.
@@ -737,7 +737,7 @@ sal_uInt32 EditEngine::GetLineHeight( sal_uInt16 nParagraph, sal_uInt16 nLine )
 	return pImpEditEngine->GetLineHeight( nParagraph, nLine );
 }
 
-sal_uInt16 EditEngine::GetFirstLineOffset( sal_uInt16 nParagraph )
+sal_uInt16 EditEngine::GetFirstLineOffset( sal_uInt32 nParagraph )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	if ( !pImpEditEngine->IsFormatted() )
@@ -746,7 +746,7 @@ sal_uInt16 EditEngine::GetFirstLineOffset( sal_uInt16 nParagraph )
 	return ( pPortion ? pPortion->GetFirstLineOffset() : 0 );
 }
 
-sal_uInt32 EditEngine::GetTextHeight( sal_uInt16 nParagraph ) const
+sal_uInt32 EditEngine::GetTextHeight( sal_uInt32 nParagraph ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 
@@ -757,7 +757,7 @@ sal_uInt32 EditEngine::GetTextHeight( sal_uInt16 nParagraph ) const
  	return nHeight;
 }
 
-XubString EditEngine::GetWord( sal_uInt16 nPara, sal_uInt16 nIndex )
+XubString EditEngine::GetWord( sal_uInt32 nPara, sal_uInt16 nIndex )
 {
 	ESelection aESel( nPara, nIndex, nPara, nIndex );
 	EditSelection aSel( pImpEditEngine->CreateSel( aESel ) );
@@ -890,11 +890,11 @@ sal_Bool EditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pEditVie
 			{
 				if ( rKeyEvent.GetKeyCode().IsMod1() && rKeyEvent.GetKeyCode().IsMod2() )
 				{
-                    sal_uInt16 nParas = GetParagraphCount();
+                    sal_uInt32 nParas = GetParagraphCount();
                     Point aPos;
                     Point aViewStart( pEditView->GetOutputArea().TopLeft() );
                     long n20 = 40 * pImpEditEngine->nOnePixelInRef;
-                    for ( sal_uInt16 n = 0; n < nParas; n++ )
+                    for ( sal_uInt32 n = 0; n < nParas; n++ )
                     {
                         long nH = GetTextHeight( n );
                         Point P1( aViewStart.X() + n20 + n20*(n%2), aViewStart.Y() + aPos.Y() );
@@ -1011,7 +1011,7 @@ sal_Bool EditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pEditVie
 						// now on and that will be all. Otherwise continue as usual.
 						// ...
 
-						sal_uInt16 nPara = pImpEditEngine->GetEditDoc().GetPos( pNode );
+						sal_uInt32 nPara = pImpEditEngine->GetEditDoc().GetPos( pNode );
 						SfxBoolItem aBulletState( (const SfxBoolItem&) pImpEditEngine->GetParaAttrib( nPara, EE_PARA_BULLETSTATE ) );
 						bool bBulletIsVisible = aBulletState.GetValue() ? true : false;
 
@@ -1385,13 +1385,13 @@ void EditEngine::SetText( const EditTextObject& rTextObject )
     pImpEditEngine->LeaveBlockNotifications();
 }
 
-void EditEngine::ShowParagraph( sal_uInt16 nParagraph, sal_Bool bShow )
+void EditEngine::ShowParagraph( sal_uInt32 nParagraph, sal_Bool bShow )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	pImpEditEngine->ShowParagraph( nParagraph, bShow );
 }
 
-sal_Bool EditEngine::IsParagraphVisible( sal_uInt16 nParagraph )
+sal_Bool EditEngine::IsParagraphVisible( sal_uInt32 nParagraph )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	return pImpEditEngine->IsParagraphVisible( nParagraph );
@@ -1458,7 +1458,7 @@ void EditEngine::SetEndPasteOrDropHdl( const Link& rLink )
 	pImpEditEngine->aEndPasteOrDropHdl = rLink;
 }
 
-EditTextObject*	EditEngine::CreateTextObject( sal_uInt16 nPara, sal_uInt16 nParas )
+EditTextObject*	EditEngine::CreateTextObject( sal_uInt32 nPara, sal_uInt32 nParas )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	DBG_ASSERT( nPara < pImpEditEngine->GetEditDoc().Count(), "CreateTextObject: Startpara out of Range" );
@@ -1479,7 +1479,7 @@ EditTextObject*	EditEngine::CreateTextObject( sal_uInt16 nPara, sal_uInt16 nPara
 	return 0;
 }
 
-void EditEngine::RemoveParagraph( sal_uInt16 nPara )
+void EditEngine::RemoveParagraph( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	DBG_ASSERT( pImpEditEngine->GetEditDoc().Count() > 1, "Der erste Absatz darf nicht geloescht werden!" );
@@ -1499,7 +1499,7 @@ void EditEngine::RemoveParagraph( sal_uInt16 nPara )
 	}
 }
 
-sal_uInt16 EditEngine::GetTextLen( sal_uInt16 nPara ) const
+sal_uInt16 EditEngine::GetTextLen( sal_uInt32 nPara ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	ContentNode* pNode = pImpEditEngine->GetEditDoc().SaveGetObject( nPara );
@@ -1509,7 +1509,7 @@ sal_uInt16 EditEngine::GetTextLen( sal_uInt16 nPara ) const
 	return 0;
 }
 
-XubString EditEngine::GetText( sal_uInt16 nPara ) const
+XubString EditEngine::GetText( sal_uInt32 nPara ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	XubString aStr;
@@ -1562,7 +1562,7 @@ void EditEngine::StopSelectionMode()
 	pImpEditEngine->StopSelectionMode();
 }
 
-void EditEngine::InsertParagraph( sal_uInt16 nPara, const EditTextObject& rTxtObj )
+void EditEngine::InsertParagraph( sal_uInt32 nPara, const EditTextObject& rTxtObj )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	if ( nPara > GetParagraphCount() )
@@ -1585,7 +1585,7 @@ void EditEngine::InsertParagraph( sal_uInt16 nPara, const EditTextObject& rTxtOb
 	pImpEditEngine->FormatAndUpdate();
 }
 
-void EditEngine::InsertParagraph( sal_uInt16 nPara, const XubString& rTxt )
+void EditEngine::InsertParagraph( sal_uInt32 nPara, const XubString& rTxt )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	if ( nPara > GetParagraphCount() )
@@ -1604,7 +1604,7 @@ void EditEngine::InsertParagraph( sal_uInt16 nPara, const XubString& rTxt )
 	pImpEditEngine->FormatAndUpdate();
 }
 
-void EditEngine::SetText( sal_uInt16 nPara, const EditTextObject& rTxtObj )
+void EditEngine::SetText( sal_uInt32 nPara, const EditTextObject& rTxtObj )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	EditSelection* pSel = pImpEditEngine->SelectParagraph( nPara );
@@ -1618,7 +1618,7 @@ void EditEngine::SetText( sal_uInt16 nPara, const EditTextObject& rTxtObj )
 	}
 }
 
-void EditEngine::SetText( sal_uInt16 nPara, const XubString& rTxt )
+void EditEngine::SetText( sal_uInt32 nPara, const XubString& rTxt )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	EditSelection* pSel = pImpEditEngine->SelectParagraph( nPara );
@@ -1632,7 +1632,7 @@ void EditEngine::SetText( sal_uInt16 nPara, const XubString& rTxt )
 	}
 }
 
-void EditEngine::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
+void EditEngine::SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	// Keine Undoklammerung noetig.
@@ -1640,25 +1640,25 @@ void EditEngine::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
 	pImpEditEngine->FormatAndUpdate();
 }
 
-const SfxItemSet& EditEngine::GetParaAttribs( sal_uInt16 nPara ) const
+const SfxItemSet& EditEngine::GetParaAttribs( sal_uInt32 nPara ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	return pImpEditEngine->GetParaAttribs( nPara );
 }
 
-sal_Bool EditEngine::HasParaAttrib( sal_uInt16 nPara, sal_uInt16 nWhich ) const
+sal_Bool EditEngine::HasParaAttrib( sal_uInt32 nPara, sal_uInt16 nWhich ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	return pImpEditEngine->HasParaAttrib( nPara, nWhich );
 }
 
-const SfxPoolItem& EditEngine::GetParaAttrib( sal_uInt16 nPara, sal_uInt16 nWhich )
+const SfxPoolItem& EditEngine::GetParaAttrib( sal_uInt32 nPara, sal_uInt16 nWhich )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
     return pImpEditEngine->GetParaAttrib( nPara, nWhich );
 }
 
-void EditEngine::GetCharAttribs( sal_uInt16 nPara, EECharAttribArray& rLst ) const
+void EditEngine::GetCharAttribs( sal_uInt32 nPara, EECharAttribArray& rLst ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	pImpEditEngine->GetCharAttribs( nPara, rLst );
@@ -1672,7 +1672,7 @@ SfxItemSet EditEngine::GetAttribs( const ESelection& rSel, sal_Bool bOnlyHardAtt
 	return pImpEditEngine->GetAttribs( aSel, bOnlyHardAttrib );
 }
 
-SfxItemSet EditEngine::GetAttribs( sal_uInt16 nPara, sal_uInt16 nStart, sal_uInt16 nEnd, sal_uInt8 nFlags ) const
+SfxItemSet EditEngine::GetAttribs( sal_uInt32 nPara, sal_uInt16 nStart, sal_uInt16 nEnd, sal_uInt8 nFlags ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	return pImpEditEngine->GetAttribs( nPara, nStart, nEnd, nFlags );
@@ -1690,13 +1690,13 @@ void EditEngine::RemoveAttribs( const ESelection& rSelection, sal_Bool bRemovePa
 }
 
 // MT: Can be removed after 6.x?
-Font EditEngine::GetStandardFont( sal_uInt16 nPara )
+Font EditEngine::GetStandardFont( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	return GetStandardSvxFont( nPara );
 }
 
-SvxFont EditEngine::GetStandardSvxFont( sal_uInt16 nPara )
+SvxFont EditEngine::GetStandardSvxFont( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	ContentNode* pNode = pImpEditEngine->GetEditDoc().SaveGetObject( nPara );
@@ -1716,7 +1716,7 @@ void EditEngine::StripPortions()
 	pImpEditEngine->Paint( &aTmpDev, aBigRec, Point(), sal_True );
 }
 
-void EditEngine::GetPortions( sal_uInt16 nPara, SvUShorts& rList )
+void EditEngine::GetPortions( sal_uInt32 nPara, SvUShorts& rList )
 {
 	if ( !pImpEditEngine->IsFormatted() )
 		pImpEditEngine->FormatFullDoc();
@@ -1787,8 +1787,8 @@ void EditEngine::SetControlWord( sal_uInt32 nWord )
 			if ( bSpellingChanged && ( nWord & EE_CNTRL_ONLINESPELLING ) )
 			{
 				// WrongListen anlegen, Timer starten...
-				sal_uInt16 nNodes = pImpEditEngine->GetEditDoc().Count();
-				for ( sal_uInt16 n = 0; n < nNodes; n++ )
+				sal_uInt32 nNodes = pImpEditEngine->GetEditDoc().Count();
+				for ( sal_uInt32 n = 0; n < nNodes; n++ )
 				{
 					ContentNode* pNode = pImpEditEngine->GetEditDoc().GetObject( n );
 					pNode->CreateWrongList();
@@ -1798,8 +1798,8 @@ void EditEngine::SetControlWord( sal_uInt32 nWord )
 			else
 			{
 				long nY = 0;
-				sal_uInt16 nNodes = pImpEditEngine->GetEditDoc().Count();
-				for ( sal_uInt16 n = 0; n < nNodes; n++ )
+				sal_uInt32 nNodes = pImpEditEngine->GetEditDoc().Count();
+				for ( sal_uInt32 n = 0; n < nNodes; n++ )
 				{
 					ContentNode* pNode = pImpEditEngine->GetEditDoc().GetObject( n );
 					ParaPortion* pPortion = pImpEditEngine->GetParaPortions().GetObject( n );
@@ -1827,7 +1827,7 @@ sal_uInt32 EditEngine::GetControlWord() const
 	return pImpEditEngine->aStatus.GetControlWord();
 }
 
-long EditEngine::GetFirstLineStartX( sal_uInt16 nParagraph )
+long EditEngine::GetFirstLineStartX( sal_uInt32 nParagraph )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 
@@ -1855,7 +1855,7 @@ Point EditEngine::GetDocPos( const Point& rPaperPos ) const
 	return aDocPos;
 }
 
-Point EditEngine::GetDocPosTopLeft( sal_uInt16 nParagraph )
+Point EditEngine::GetDocPosTopLeft( sal_uInt32 nParagraph )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	ParaPortion* pPPortion = pImpEditEngine->GetParaPortions().SaveGetObject( nParagraph );
@@ -1890,7 +1890,7 @@ Point EditEngine::GetDocPosTopLeft( sal_uInt16 nParagraph )
 	return aPoint;
 }
 
-const SvxNumberFormat* EditEngine::GetNumberFormat( sal_uInt16 nPara ) const
+const SvxNumberFormat* EditEngine::GetNumberFormat( sal_uInt32 nPara ) const
 {
     // derived objects may overload this function to give access to
     // bullet information (see Outliner)
@@ -1898,7 +1898,7 @@ const SvxNumberFormat* EditEngine::GetNumberFormat( sal_uInt16 nPara ) const
     return 0;
 }
 
-sal_Bool EditEngine::IsRightToLeft( sal_uInt16 nPara ) const
+sal_Bool EditEngine::IsRightToLeft( sal_uInt32 nPara ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
     return pImpEditEngine->IsRightToLeft( nPara );
@@ -1963,7 +1963,7 @@ void EditEngine::QuickMarkInvalid( const ESelection& rSel )
 	DBG_CHKTHIS( EditEngine, 0 );
 	DBG_ASSERT( rSel.nStartPara < pImpEditEngine->GetEditDoc().Count(), "MarkInvalid: Start out of Range!" );
 	DBG_ASSERT( rSel.nEndPara < pImpEditEngine->GetEditDoc().Count(), "MarkInvalid: End out of Range!" );
-	for ( sal_uInt16 nPara = rSel.nStartPara; nPara <= rSel.nEndPara; nPara++ )
+	for ( sal_uInt32 nPara = rSel.nStartPara; nPara <= rSel.nEndPara; nPara++ )
 	{
 		ParaPortion* pPortion = pImpEditEngine->GetParaPortions().SaveGetObject( nPara );
 		if ( pPortion )
@@ -1991,7 +1991,7 @@ void EditEngine::QuickDelete( const ESelection& rSel )
 	pImpEditEngine->ImpDeleteSelection( aSel );
 }
 
-void EditEngine::QuickMarkToBeRepainted( sal_uInt16 nPara )
+void EditEngine::QuickMarkToBeRepainted( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	ParaPortion* pPortion = pImpEditEngine->GetParaPortions().SaveGetObject( nPara );
@@ -2031,19 +2031,19 @@ void EditEngine::QuickFormatDoc( sal_Bool bFull )
     pImpEditEngine->UpdateViews( NULL );
 }
 
-void EditEngine::QuickRemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich )
+void EditEngine::QuickRemoveCharAttribs( sal_uInt32 nPara, sal_uInt16 nWhich )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	pImpEditEngine->RemoveCharAttribs( nPara, nWhich );
 }
 
-void EditEngine::SetStyleSheet( sal_uInt16 nPara, SfxStyleSheet* pStyle )
+void EditEngine::SetStyleSheet( sal_uInt32 nPara, SfxStyleSheet* pStyle )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	pImpEditEngine->SetStyleSheet( nPara, pStyle );
 }
 
-SfxStyleSheet* EditEngine::GetStyleSheet( sal_uInt16 nPara ) const
+SfxStyleSheet* EditEngine::GetStyleSheet( sal_uInt32 nPara ) const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	return pImpEditEngine->GetStyleSheet( nPara );
@@ -2279,8 +2279,8 @@ sal_Bool EditEngine::ShouldCreateBigTextObject() const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	sal_uInt16 nTextPortions = 0;
-	sal_uInt16 nParas = pImpEditEngine->GetEditDoc().Count();
-	for ( sal_uInt16 nPara = 0; nPara < nParas; nPara++  )
+	sal_uInt32 nParas = pImpEditEngine->GetEditDoc().Count();
+	for ( sal_uInt32 nPara = 0; nPara < nParas; nPara++  )
 	{
 		ParaPortion* pParaPortion = pImpEditEngine->GetParaPortions()[nPara];
 		nTextPortions = nTextPortions + pParaPortion->GetTextPortions().Count();
@@ -2288,7 +2288,7 @@ sal_Bool EditEngine::ShouldCreateBigTextObject() const
 	return ( nTextPortions >= pImpEditEngine->GetBigTextObjectStart() ) ? sal_True : sal_False;
 }
 
-sal_uInt16 EditEngine::GetFieldCount( sal_uInt16 nPara ) const
+sal_uInt16 EditEngine::GetFieldCount( sal_uInt32 nPara ) const
 {
     sal_uInt16 nFields = 0;
     ContentNode* pNode = pImpEditEngine->GetEditDoc().SaveGetObject( nPara );
@@ -2306,7 +2306,7 @@ sal_uInt16 EditEngine::GetFieldCount( sal_uInt16 nPara ) const
     return nFields;
 }
 
-EFieldInfo EditEngine::GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const
+EFieldInfo EditEngine::GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const
 {
     ContentNode* pNode = pImpEditEngine->GetEditDoc().SaveGetObject( nPara );
     if ( pNode )
@@ -2349,8 +2349,8 @@ void EditEngine::RemoveFields( sal_Bool bKeepFieldText, TypeId aType )
 	if ( bKeepFieldText )
 		pImpEditEngine->UpdateFields();
 
-	sal_uInt16 nParas = pImpEditEngine->GetEditDoc().Count();
-	for ( sal_uInt16 nPara = 0; nPara < nParas; nPara++  )
+	sal_uInt32 nParas = pImpEditEngine->GetEditDoc().Count();
+	for ( sal_uInt32 nPara = 0; nPara < nParas; nPara++  )
 	{
 		ContentNode* pNode = pImpEditEngine->GetEditDoc().GetObject( nPara );
 		const CharAttribArray& rAttrs = pNode->GetCharAttribs().GetAttribs();
@@ -2375,8 +2375,8 @@ void EditEngine::RemoveFields( sal_Bool bKeepFieldText, TypeId aType )
 sal_Bool EditEngine::HasOnlineSpellErrors() const
 {
 	DBG_CHKTHIS( EditEngine, 0 );
-	sal_uInt16 nNodes = pImpEditEngine->GetEditDoc().Count();
-	for ( sal_uInt16 n = 0; n < nNodes; n++ )
+	sal_uInt32 nNodes = pImpEditEngine->GetEditDoc().Count();
+	for ( sal_uInt32 n = 0; n < nNodes; n++ )
 	{
 		ContentNode* pNode = pImpEditEngine->GetEditDoc().GetObject( n );
 		if ( pNode->GetWrongList() && pNode->GetWrongList()->Count() )
@@ -2398,7 +2398,7 @@ void EditEngine::CompleteOnlineSpelling()
 	}
 }
 
-sal_uInt16 EditEngine::FindParagraph( long nDocPosY )
+sal_uInt32 EditEngine::FindParagraph( long nDocPosY )
 {
 	return pImpEditEngine->GetParaPortions().FindParagraph( nDocPosY );
 }
@@ -2432,7 +2432,7 @@ Rectangle EditEngine::GetCharacterBounds( const EPosition& rPos ) const
     return aBounds;
 }
 
-ParagraphInfos EditEngine::GetParagraphInfos( sal_uInt16 nPara )
+ParagraphInfos EditEngine::GetParagraphInfos( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 
@@ -2474,7 +2474,7 @@ ParagraphInfos EditEngine::GetParagraphInfos( sal_uInt16 nPara )
 // ======================   Virtuelle Methoden   =======================
 // =====================================================================
 void __EXPORT EditEngine::DrawingText( const Point&, const XubString&, sal_uInt16, sal_uInt16,
-    const sal_Int32*, const SvxFont&, sal_uInt16, sal_uInt16, sal_uInt8,
+    const sal_Int32*, const SvxFont&, sal_uInt32, sal_uInt16, sal_uInt8,
     const EEngineData::WrongSpellVector*, const SvxFieldData*, bool, bool, bool,
     const ::com::sun::star::lang::Locale*, const Color&, const Color&)
 
@@ -2482,12 +2482,12 @@ void __EXPORT EditEngine::DrawingText( const Point&, const XubString&, sal_uInt1
 	DBG_CHKTHIS( EditEngine, 0 );
 }
 
-void __EXPORT EditEngine::PaintingFirstLine( sal_uInt16, const Point&, long, const Point&, short, OutputDevice* )
+void __EXPORT EditEngine::PaintingFirstLine( sal_uInt32, const Point&, long, const Point&, short, OutputDevice* )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 }
 
-void __EXPORT EditEngine::ParagraphInserted( sal_uInt16 nPara )
+void __EXPORT EditEngine::ParagraphInserted( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 
@@ -2500,7 +2500,7 @@ void __EXPORT EditEngine::ParagraphInserted( sal_uInt16 nPara )
     }
 }
 
-void __EXPORT EditEngine::ParagraphDeleted( sal_uInt16 nPara )
+void __EXPORT EditEngine::ParagraphDeleted( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 
@@ -2512,19 +2512,19 @@ void __EXPORT EditEngine::ParagraphDeleted( sal_uInt16 nPara )
         pImpEditEngine->CallNotify( aNotify );
     }
 }
-void EditEngine::ParagraphConnected( sal_uInt16 /*nLeftParagraph*/, sal_uInt16 /*nRightParagraph*/ )
+void EditEngine::ParagraphConnected( sal_uInt32 /*nLeftParagraph*/, sal_uInt32 /*nRightParagraph*/ )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 }
 
-sal_Bool __EXPORT EditEngine::FormattingParagraph( sal_uInt16 )
+sal_Bool __EXPORT EditEngine::FormattingParagraph( sal_uInt32 )
 {
 	// return sal_True, wenn die Attribute geaendert wurden...
 	DBG_CHKTHIS( EditEngine, 0 );
 	return sal_False;
 }
 
-void __EXPORT EditEngine::ParaAttribsChanged( sal_uInt16 /* nParagraph */ )
+void __EXPORT EditEngine::ParaAttribsChanged( sal_uInt32 /* nParagraph */ )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 }
@@ -2534,7 +2534,7 @@ void __EXPORT EditEngine::StyleSheetChanged( SfxStyleSheet* /* pStyle */ )
 	DBG_CHKTHIS( EditEngine, 0 );
 }
 
-void __EXPORT EditEngine::ParagraphHeightChanged( sal_uInt16 nPara )
+void __EXPORT EditEngine::ParagraphHeightChanged( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 
@@ -2600,23 +2600,23 @@ XubString __EXPORT EditEngine::GetUndoComment( sal_uInt16 nId ) const
 	return aComment;
 }
 
-Rectangle EditEngine::GetBulletArea( sal_uInt16 )
+Rectangle EditEngine::GetBulletArea( sal_uInt32 )
 {
 	return Rectangle( Point(), Point() );
 }
 
-XubString __EXPORT EditEngine::CalcFieldValue( const SvxFieldItem&, sal_uInt16, sal_uInt16, Color*&, Color*& )
+XubString __EXPORT EditEngine::CalcFieldValue( const SvxFieldItem&, sal_uInt32, sal_uInt16, Color*&, Color*& )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 	return ' ';
 }
 
-void __EXPORT EditEngine::FieldClicked( const SvxFieldItem&, sal_uInt16, sal_uInt16 )
+void __EXPORT EditEngine::FieldClicked( const SvxFieldItem&, sal_uInt32, sal_uInt16 )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 }
 
-void __EXPORT EditEngine::FieldSelected( const SvxFieldItem&, sal_uInt16, sal_uInt16 )
+void __EXPORT EditEngine::FieldSelected( const SvxFieldItem&, sal_uInt32, sal_uInt16 )
 {
 	DBG_CHKTHIS( EditEngine, 0 );
 }
@@ -2924,7 +2924,7 @@ EFieldInfo::EFieldInfo()
 }
 
 
-EFieldInfo::EFieldInfo( const SvxFieldItem& rFieldItem, sal_uInt16 nPara, sal_uInt16 nPos ) : aPosition( nPara, nPos )
+EFieldInfo::EFieldInfo( const SvxFieldItem& rFieldItem, sal_uInt32 nPara, sal_uInt16 nPos ) : aPosition( nPara, nPos )
 {
     pFieldItem = new SvxFieldItem( rFieldItem );
 }
diff --git a/main/editeng/source/editeng/editobj.cxx b/main/editeng/source/editeng/editobj.cxx
index 08d906fca3..9b7aba2761 100644
--- a/main/editeng/source/editeng/editobj.cxx
+++ b/main/editeng/source/editeng/editobj.cxx
@@ -306,30 +306,30 @@ __EXPORT EditTextObject::~EditTextObject()
 	DBG_DTOR( EE_EditTextObject, 0 );
 }
 
-sal_uInt16 EditTextObject::GetParagraphCount() const
+sal_uInt32 EditTextObject::GetParagraphCount() const
 {
 	DBG_ERROR( "V-Methode direkt vom EditTextObject!" );
 	return 0;
 }
 
-XubString EditTextObject::GetText( sal_uInt16 /* nParagraph */ ) const
+XubString EditTextObject::GetText( sal_uInt32 /* nParagraph */ ) const
 {
 	DBG_ERROR( "V-Methode direkt vom EditTextObject!" );
 	return XubString();
 }
 
-void EditTextObject::Insert( const EditTextObject& /* rObj */, sal_uInt16 /* nPara */)
+void EditTextObject::Insert( const EditTextObject& /* rObj */, sal_uInt32 /* nPara */)
 {
 	DBG_ERROR( "V-Methode direkt vom EditTextObject!" );
 }
 
-EditTextObject* EditTextObject::CreateTextObject( sal_uInt16 /*nPara*/, sal_uInt16 /*nParas*/ ) const
+EditTextObject* EditTextObject::CreateTextObject( sal_uInt32 /*nPara*/, sal_uInt32 /*nParas*/ ) const
 {
 	DBG_ERROR( "V-Methode direkt vom EditTextObject!" );
 	return 0;
 }
 
-void EditTextObject::RemoveParagraph( sal_uInt16 /*nPara*/ )
+void EditTextObject::RemoveParagraph( sal_uInt32 /*nPara*/ )
 {
 	DBG_ERROR( "V-Methode direkt vom EditTextObject!" );
 }
@@ -357,7 +357,7 @@ sal_Bool EditTextObject::HasCharAttribs( sal_uInt16 ) const
 	return sal_False;
 }
 
-void EditTextObject::GetCharAttribs( sal_uInt16 /*nPara*/, EECharAttribArray& /*rLst*/ ) const
+void EditTextObject::GetCharAttribs( sal_uInt32 /*nPara*/, EECharAttribArray& /*rLst*/ ) const
 {
 	DBG_ERROR( "V-Methode direkt vom EditTextObject!" );
 }
@@ -385,13 +385,13 @@ sal_Bool EditTextObject::HasField( TypeId /*aType*/ ) const
 	return sal_False;
 }
 
-SfxItemSet EditTextObject::GetParaAttribs( sal_uInt16 /*nPara*/ ) const
+SfxItemSet EditTextObject::GetParaAttribs( sal_uInt32 /*nPara*/ ) const
 {
 	DBG_ERROR( "V-Methode direkt vom EditTextObject!" );
 	return SfxItemSet( *(SfxItemPool*)NULL );
 }
 
-void EditTextObject::SetParaAttribs( sal_uInt16 /*nPara*/, const SfxItemSet& /*rAttribs*/ )
+void EditTextObject::SetParaAttribs( sal_uInt32 /*nPara*/, const SfxItemSet& /*rAttribs*/ )
 {
 	DBG_ERROR( "V-Methode direkt vom EditTextObject!" );
 }
@@ -414,12 +414,12 @@ sal_Bool EditTextObject::HasStyleSheet( const XubString& /*rName*/, SfxStyleFami
 	return sal_False;
 }
 
-void EditTextObject::GetStyleSheet( sal_uInt16 /*nPara*/, XubString& /*rName*/, SfxStyleFamily& /*eFamily*/ ) const
+void EditTextObject::GetStyleSheet( sal_uInt32 /*nPara*/, XubString& /*rName*/, SfxStyleFamily& /*eFamily*/ ) const
 {
 	DBG_ERROR( "V-Methode direkt vom EditTextObject!" );
 }
 
-void EditTextObject::SetStyleSheet( sal_uInt16 /*nPara*/, const XubString& /*rName*/, const SfxStyleFamily& /*eFamily*/ )
+void EditTextObject::SetStyleSheet( sal_uInt32 /*nPara*/, const XubString& /*rName*/, const SfxStyleFamily& /*eFamily*/ )
 {
 	DBG_ERROR( "V-Methode direkt vom EditTextObject!" );
 }
@@ -599,7 +599,7 @@ void BinTextObject::ObjectInDestruction(const SfxItemPool& rSfxItemPool)
 		    pNewPool->SetDefaultMetric(pPool->GetMetric(DEF_METRIC));
         }
 
-	    for(sal_uInt16 n(0); n < aContents.Count(); n++)
+	    for(sal_uInt32 n(0); n < aContents.Count(); n++)
 	    {
             // clone ContentInfos for new pool
 		    ContentInfo* pOrg = aContents.GetObject(n);
@@ -709,7 +709,7 @@ BinTextObject::BinTextObject( const BinTextObject& r ) :
     if ( bOwnerOfPool && pPool && r.pPool )
 		pPool->SetDefaultMetric( r.pPool->GetMetric( DEF_METRIC ) );
 
-	for ( sal_uInt16 n = 0; n < r.aContents.Count(); n++ )
+	for ( sal_uInt32 n = 0; n < r.aContents.Count(); n++ )
 	{
 		ContentInfo* pOrg = r.aContents.GetObject( n );
 		DBG_ASSERT( pOrg, "NULL-Pointer in ContentList!" );
@@ -783,7 +783,7 @@ void BinTextObject::SetScriptType( sal_uInt16 nType )
 
 void BinTextObject::DeleteContents()
 {
-	for ( sal_uInt16 n = 0; n < aContents.Count(); n++ )
+	for ( sal_uInt32 n = 0; n < aContents.Count(); n++ )
 	{
 		ContentInfo* p = aContents.GetObject( n );
 		DBG_ASSERT( p, "NULL-Pointer in ContentList!" );
@@ -815,12 +815,12 @@ ContentInfo* BinTextObject::CreateAndInsertContent()
 	return pC;
 }
 
-sal_uInt16 BinTextObject::GetParagraphCount() const
+sal_uInt32 BinTextObject::GetParagraphCount() const
 {
 	return aContents.Count();
 }
 
-XubString BinTextObject::GetText( sal_uInt16 nPara ) const
+XubString BinTextObject::GetText( sal_uInt32 nPara ) const
 {
 	DBG_ASSERT( nPara < aContents.Count(), "BinTextObject::GetText: Absatz existiert nicht!" );
 	if ( nPara < aContents.Count() )
@@ -831,7 +831,7 @@ XubString BinTextObject::GetText( sal_uInt16 nPara ) const
 	return XubString();
 }
 
-void BinTextObject::Insert( const EditTextObject& rObj, sal_uInt16 nDestPara )
+void BinTextObject::Insert( const EditTextObject& rObj, sal_uInt32 nDestPara )
 {
 	DBG_ASSERT( rObj.Which() == EE_FORMAT_BIN, "UTO: Unbekanntes Textobjekt" );
 
@@ -840,8 +840,8 @@ void BinTextObject::Insert( const EditTextObject& rObj, sal_uInt16 nDestPara )
 	if ( nDestPara > aContents.Count() )
 		nDestPara = aContents.Count();
 
-	const sal_uInt16 nParas = rBinObj.GetContents().Count();
-	for ( sal_uInt16 nP = 0; nP < nParas; nP++ )
+	const sal_uInt32 nParas = rBinObj.GetContents().Count();
+	for ( sal_uInt32 nP = 0; nP < nParas; nP++ )
 	{
 		ContentInfo* pC = rBinObj.GetContents()[ nP ];
 		ContentInfo* pNew = new ContentInfo( *pC, *GetPool() );
@@ -850,7 +850,7 @@ void BinTextObject::Insert( const EditTextObject& rObj, sal_uInt16 nDestPara )
 	ClearPortionInfo();
 }
 
-EditTextObject* BinTextObject::CreateTextObject( sal_uInt16 nPara, sal_uInt16 nParas ) const
+EditTextObject* BinTextObject::CreateTextObject( sal_uInt32 nPara, sal_uInt32 nParas ) const
 {
 	if ( ( nPara >= aContents.Count() ) || !nParas )
 		return NULL;
@@ -864,8 +864,8 @@ EditTextObject* BinTextObject::CreateTextObject( sal_uInt16 nPara, sal_uInt16 nP
 	// If text contains different ScriptTypes, this shouldn't be a problem...
 	pObj->nScriptType = nScriptType;
 
-	const sal_uInt16 nEndPara = nPara+nParas-1;
-	for ( sal_uInt16 nP = nPara; nP <= nEndPara; nP++ )
+	const sal_uInt32 nEndPara = nPara+nParas-1;
+	for ( sal_uInt32 nP = nPara; nP <= nEndPara; nP++ )
 	{
 		ContentInfo* pC = aContents[ nP ];
 		ContentInfo* pNew = new ContentInfo( *pC, *pObj->GetPool() );
@@ -874,7 +874,7 @@ EditTextObject* BinTextObject::CreateTextObject( sal_uInt16 nPara, sal_uInt16 nP
 	return pObj;
 }
 
-void BinTextObject::RemoveParagraph( sal_uInt16 nPara )
+void BinTextObject::RemoveParagraph( sal_uInt32 nPara )
 {
 	DBG_ASSERT( nPara < aContents.Count(), "BinTextObject::GetText: Absatz existiert nicht!" );
 	if ( nPara < aContents.Count() )
@@ -905,7 +905,7 @@ void BinTextObject::ClearPortionInfo()
 sal_Bool BinTextObject::HasOnlineSpellErrors() const
 {
 #ifndef SVX_LIGHT
-	for ( sal_uInt16 n = 0; n < aContents.Count(); n++ )
+	for ( sal_uInt32 n = 0; n < aContents.Count(); n++ )
 	{
 		ContentInfo* p = aContents.GetObject( n );
 		if ( p->GetWrongList() && p->GetWrongList()->Count() )
@@ -918,7 +918,7 @@ sal_Bool BinTextObject::HasOnlineSpellErrors() const
 
 sal_Bool BinTextObject::HasCharAttribs( sal_uInt16 _nWhich ) const
 {
-	for ( sal_uInt16 nPara = GetContents().Count(); nPara; )
+	for ( sal_uInt32 nPara = GetContents().Count(); nPara; )
 	{
 		ContentInfo* pC = GetContents().GetObject( --nPara );
 
@@ -936,7 +936,7 @@ sal_Bool BinTextObject::HasCharAttribs( sal_uInt16 _nWhich ) const
 	return sal_False;
 }
 
-void BinTextObject::GetCharAttribs( sal_uInt16 nPara, EECharAttribArray& rLst ) const
+void BinTextObject::GetCharAttribs( sal_uInt32 nPara, EECharAttribArray& rLst ) const
 {
 	rLst.Remove( 0, rLst.Count() );
 	ContentInfo* pC = GetContents().GetObject( nPara );
@@ -959,7 +959,7 @@ void BinTextObject::MergeParaAttribs( const SfxItemSet& rAttribs, sal_uInt16 nSt
 {
 	sal_Bool bChanged = sal_False;
 
-	for ( sal_uInt16 nPara = GetContents().Count(); nPara; )
+	for ( sal_uInt32 nPara = GetContents().Count(); nPara; )
 	{
 		ContentInfo* pC = GetContents().GetObject( --nPara );
 
@@ -1004,8 +1004,8 @@ const SvxFieldItem* BinTextObject::GetField() const
 
 sal_Bool BinTextObject::HasField( TypeId aType ) const
 {
-	sal_uInt16 nParagraphs = GetContents().Count();
-	for ( sal_uInt16 nPara = 0; nPara < nParagraphs; nPara++ )
+	sal_uInt32 nParagraphs = GetContents().Count();
+	for ( sal_uInt32 nPara = 0; nPara < nParagraphs; nPara++ )
 	{
 		ContentInfo* pC = GetContents().GetObject( nPara );
 		sal_uInt16 nAttrs = pC->GetAttribs().Count();
@@ -1026,13 +1026,13 @@ sal_Bool BinTextObject::HasField( TypeId aType ) const
 	return sal_False;
 }
 
-SfxItemSet BinTextObject::GetParaAttribs( sal_uInt16 nPara ) const
+SfxItemSet BinTextObject::GetParaAttribs( sal_uInt32 nPara ) const
 {
 	ContentInfo* pC = GetContents().GetObject( nPara );
 	return pC->GetParaAttribs();
 }
 
-void BinTextObject::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rAttribs )
+void BinTextObject::SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rAttribs )
 {
 	ContentInfo* pC = GetContents().GetObject( nPara );
 	pC->GetParaAttribs().Set( rAttribs );
@@ -1043,7 +1043,7 @@ sal_Bool BinTextObject::RemoveCharAttribs( sal_uInt16 _nWhich )
 {
 	sal_Bool bChanged = sal_False;
 
-	for ( sal_uInt16 nPara = GetContents().Count(); nPara; )
+	for ( sal_uInt32 nPara = GetContents().Count(); nPara; )
 	{
 		ContentInfo* pC = GetContents().GetObject( --nPara );
 
@@ -1069,7 +1069,7 @@ sal_Bool BinTextObject::RemoveParaAttribs( sal_uInt16 _nWhich )
 {
 	sal_Bool bChanged = sal_False;
 
-	for ( sal_uInt16 nPara = GetContents().Count(); nPara; )
+	for ( sal_uInt32 nPara = GetContents().Count(); nPara; )
 	{
 		ContentInfo* pC = GetContents().GetObject( --nPara );
 
@@ -1097,8 +1097,8 @@ sal_Bool BinTextObject::RemoveParaAttribs( sal_uInt16 _nWhich )
 
 sal_Bool BinTextObject::HasStyleSheet( const XubString& rName, SfxStyleFamily eFamily ) const
 {
-	sal_uInt16 nParagraphs = GetContents().Count();
-	for ( sal_uInt16 nPara = 0; nPara < nParagraphs; nPara++ )
+	sal_uInt32 nParagraphs = GetContents().Count();
+	for ( sal_uInt32 nPara = 0; nPara < nParagraphs; nPara++ )
 	{
 		ContentInfo* pC = GetContents().GetObject( nPara );
 		if ( ( pC->GetFamily() == eFamily ) && ( pC->GetStyle() == rName ) )
@@ -1107,7 +1107,7 @@ sal_Bool BinTextObject::HasStyleSheet( const XubString& rName, SfxStyleFamily eF
 	return sal_False;
 }
 
-void BinTextObject::GetStyleSheet( sal_uInt16 nPara, XubString& rName, SfxStyleFamily& rFamily ) const
+void BinTextObject::GetStyleSheet( sal_uInt32 nPara, XubString& rName, SfxStyleFamily& rFamily ) const
 {
 	if ( nPara < aContents.Count() )
 	{
@@ -1117,7 +1117,7 @@ void BinTextObject::GetStyleSheet( sal_uInt16 nPara, XubString& rName, SfxStyleF
 	}
 }
 
-void BinTextObject::SetStyleSheet( sal_uInt16 nPara, const XubString& rName, const SfxStyleFamily& rFamily )
+void BinTextObject::SetStyleSheet( sal_uInt32 nPara, const XubString& rName, const SfxStyleFamily& rFamily )
 {
 	if ( nPara < aContents.Count() )
 	{
@@ -1131,10 +1131,10 @@ sal_Bool BinTextObject::ImpChangeStyleSheets(
 					const XubString& rOldName, SfxStyleFamily eOldFamily,
 					const XubString& rNewName, SfxStyleFamily eNewFamily )
 {
-	const sal_uInt16 nParagraphs = GetContents().Count();
+	const sal_uInt32 nParagraphs = GetContents().Count();
 	sal_Bool bChanges = sal_False;
 
-	for ( sal_uInt16 nPara = 0; nPara < nParagraphs; nPara++ )
+	for ( sal_uInt32 nPara = 0; nPara < nParagraphs; nPara++ )
 	{
 		ContentInfo* pC = GetContents().GetObject( nPara );
 		if ( pC->GetFamily() == eOldFamily )
@@ -1169,7 +1169,7 @@ void __EXPORT BinTextObject::ChangeStyleSheetName( SfxStyleFamily eFamily,
 
 void __EXPORT BinTextObject::StoreData( SvStream& rOStream ) const
 {
-	sal_uInt16 nVer = 602;
+	sal_uInt16 nVer = 603;
 	rOStream << nVer;
 
 	rOStream << bOwnerOfPool;
@@ -1187,13 +1187,13 @@ void __EXPORT BinTextObject::StoreData( SvStream& rOStream ) const
 	rOStream << (sal_uInt16) eEncoding;
 
 	// Die Anzahl der Absaetze...
-	sal_uInt16 nParagraphs = GetContents().Count();
+	sal_uInt32 nParagraphs = GetContents().Count();
 	rOStream << nParagraphs;
 
 	char cFeatureConverted = ByteString( CH_FEATURE, eEncoding ).GetChar(0);
 
 	// Die einzelnen Absaetze...
-	for ( sal_uInt16 nPara = 0; nPara < nParagraphs; nPara++ )
+	for ( sal_uInt32 nPara = 0; nPara < nParagraphs; nPara++ )
 	{
 		ContentInfo* pC = GetContents().GetObject( nPara );
 
@@ -1325,7 +1325,7 @@ void __EXPORT BinTextObject::StoreData( SvStream& rOStream ) const
 	rOStream << bStoreUnicodeStrings;
 	if ( bStoreUnicodeStrings )
 	{
-		for ( sal_uInt16 nPara = 0; nPara < nParagraphs; nPara++ )
+		for ( sal_uInt32 nPara = 0; nPara < nParagraphs; nPara++ )
 		{
 			ContentInfo* pC = GetContents().GetObject( nPara );
 			sal_uInt16 nL = pC->GetText().Len();
@@ -1375,11 +1375,18 @@ void __EXPORT BinTextObject::CreateData( SvStream& rIStream )
 	rtl_TextEncoding eSrcEncoding = GetSOLoadTextEncoding( (rtl_TextEncoding)nCharSet, (sal_uInt16)rIStream.GetVersion() );
 
 	// Die Anzahl der Absaetze...
-	sal_uInt16 nParagraphs;
-	rIStream >> nParagraphs;
+	sal_uInt32 nParagraphs;
+	if (nVersion >= 603)
+		rIStream >> nParagraphs;
+	else
+	{
+		sal_uInt16 nParagraphs16;
+		rIStream >> nParagraphs16;
+		nParagraphs = nParagraphs16;
+	}
 
 	// Die einzelnen Absaetze...
-	for ( sal_uLong nPara = 0; nPara < nParagraphs; nPara++ )
+	for ( sal_uInt32 nPara = 0; nPara < nParagraphs; nPara++ )
 	{
 		ContentInfo* pC = CreateAndInsertContent();
 
@@ -1557,7 +1564,7 @@ void __EXPORT BinTextObject::CreateData( SvStream& rIStream )
 		rIStream >> bUnicodeStrings;
 		if ( bUnicodeStrings )
 		{
-			for ( sal_uInt16 nPara = 0; nPara < nParagraphs; nPara++ )
+			for ( sal_uInt32 nPara = 0; nPara < nParagraphs; nPara++ )
 			{
 				ContentInfo* pC = GetContents().GetObject( nPara );
 				sal_uInt16 nL;
@@ -1588,7 +1595,7 @@ void __EXPORT BinTextObject::CreateData( SvStream& rIStream )
 	// Wirkt nur wenn auch Tab-Positionen eingestellt wurden, nicht beim DefTab.
 	if ( nVersion < 500 )
 	{
-		for ( sal_uInt16 n = 0; n < aContents.Count(); n++ )
+		for ( sal_uInt32 n = 0; n < aContents.Count(); n++ )
 		{
 			ContentInfo* pC = aContents.GetObject( n );
 			const SvxLRSpaceItem& rLRSpace = (const SvxLRSpaceItem&) pC->GetParaAttribs().Get( EE_PARA_LRSPACE );
@@ -1626,7 +1633,7 @@ bool BinTextObject::operator==( const BinTextObject& rCompare ) const
 			( bVertical != rCompare.bVertical ) )
 		return false;
 
-	sal_uInt16 n;
+	sal_uInt32 n;
 	for( n = 0; n < aContents.Count(); n++ )
 	{
 		if( !( *aContents.GetObject( n ) == *rCompare.aContents.GetObject( n ) ) )
@@ -1644,7 +1651,7 @@ bool BinTextObject::isWrongListEqual(const BinTextObject& rCompare) const
         return false;
     }
 
-    for(sal_uInt16 a(0); a < GetContents().Count(); a++)
+    for(sal_uInt32 a(0); a < GetContents().Count(); a++)
     {
         const ContentInfo& rCandA(*GetContents().GetObject(a));
         const ContentInfo& rCandB(*rCompare.GetContents().GetObject(a));
diff --git a/main/editeng/source/editeng/editobj2.hxx b/main/editeng/source/editeng/editobj2.hxx
index 82e2cc3ef8..6228f901ed 100644
--- a/main/editeng/source/editeng/editobj2.hxx
+++ b/main/editeng/source/editeng/editobj2.hxx
@@ -24,6 +24,7 @@
 #ifndef _EDITOBJ2_HXX
 #define _EDITOBJ2_HXX
 
+#include <baselist.hxx>
 #include <editeng/editobj.hxx>
 #include <editdoc.hxx>
 
@@ -181,7 +182,8 @@ public:
 };
 
 typedef ContentInfo* ContentInfoPtr;
-SV_DECL_PTRARR( ContentInfoList, ContentInfoPtr, 1, 4 )
+
+typedef BaseList<ContentInfo> ContentInfoList;
 
 // MT 05/00: Sollte mal direkt EditTextObjekt werden => keine virtuellen Methoden mehr.
 
@@ -244,11 +246,11 @@ public:
 	void					SetPortionInfo( XParaPortionList* pP )
 								{ pPortionInfo = pP; }
 
-	virtual sal_uInt16			GetParagraphCount() const;
-	virtual String			GetText( sal_uInt16 nParagraph ) const;
-	virtual void			Insert( const EditTextObject& rObj, sal_uInt16 nPara );
-	virtual EditTextObject*	CreateTextObject( sal_uInt16 nPara, sal_uInt16 nParas = 1 ) const;
-	virtual void			RemoveParagraph( sal_uInt16 nPara );
+	virtual sal_uInt32			GetParagraphCount() const;
+	virtual String			GetText( sal_uInt32 nParagraph ) const;
+	virtual void			Insert( const EditTextObject& rObj, sal_uInt32 nPara );
+	virtual EditTextObject*	CreateTextObject( sal_uInt32 nPara, sal_uInt32 nParas = 1 ) const;
+	virtual void			RemoveParagraph( sal_uInt32 nPara );
 
 	virtual sal_Bool			HasPortionInfo() const;
 	virtual void			ClearPortionInfo();
@@ -256,7 +258,7 @@ public:
 	virtual sal_Bool			HasOnlineSpellErrors() const;
 
 	virtual sal_Bool			HasCharAttribs( sal_uInt16 nWhich = 0 ) const;
-	virtual void			GetCharAttribs( sal_uInt16 nPara, EECharAttribArray& rLst ) const;
+	virtual void			GetCharAttribs( sal_uInt32 nPara, EECharAttribArray& rLst ) const;
 
 	virtual sal_Bool			RemoveCharAttribs( sal_uInt16 nWhich = 0 );
 	virtual sal_Bool			RemoveParaAttribs( sal_uInt16 nWhich = 0 );
@@ -267,12 +269,12 @@ public:
 	virtual const SvxFieldItem*	GetField() const;
 	virtual sal_Bool			HasField( TypeId Type = NULL ) const;
 
-	SfxItemSet 				GetParaAttribs( sal_uInt16 nPara ) const;
-	void 					SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rAttribs );
+	SfxItemSet 				GetParaAttribs( sal_uInt32 nPara ) const;
+	void 					SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rAttribs );
 
 	virtual sal_Bool			HasStyleSheet( const XubString& rName, SfxStyleFamily eFamily ) const;
-	virtual void			GetStyleSheet( sal_uInt16 nPara, XubString& rName, SfxStyleFamily& eFamily ) const;
-	virtual void			SetStyleSheet( sal_uInt16 nPara, const XubString& rName, const SfxStyleFamily& eFamily );
+	virtual void			GetStyleSheet( sal_uInt32 nPara, XubString& rName, SfxStyleFamily& eFamily ) const;
+	virtual void			SetStyleSheet( sal_uInt32 nPara, const XubString& rName, const SfxStyleFamily& eFamily );
 	virtual sal_Bool			ChangeStyleSheets( 	const XubString& rOldName, SfxStyleFamily eOldFamily,
 												const String& rNewName, SfxStyleFamily eNewFamily );
 	virtual void			ChangeStyleSheetName( SfxStyleFamily eFamily, const XubString& rOldName, const XubString& rNewName );
diff --git a/main/editeng/source/editeng/editundo.cxx b/main/editeng/source/editeng/editundo.cxx
index 0da77b4117..1436a71f1c 100644
--- a/main/editeng/source/editeng/editundo.cxx
+++ b/main/editeng/source/editeng/editundo.cxx
@@ -53,7 +53,7 @@ TYPEINIT1( EditUndoSetAttribs, EditUndo );
 TYPEINIT1( EditUndoTransliteration, EditUndo );
 TYPEINIT1( EditUndoMarkSelection, EditUndo );
 
-void lcl_DoSetSelection( EditView* pView, sal_uInt16 nPara )
+void lcl_DoSetSelection( EditView* pView, sal_uInt32 nPara )
 {
 	EPaM aEPaM( nPara, 0 );
 	EditPaM aPaM( pView->GetImpEditEngine()->CreateEditPaM( aEPaM ) );
@@ -186,7 +186,7 @@ XubString __EXPORT EditUndo::GetComment() const
 // -----------------------------------------------------------------------
 // EditUndoDelContent
 // ------------------------------------------------------------------------
-EditUndoDelContent::EditUndoDelContent( ImpEditEngine* _pImpEE, ContentNode* pNode, sal_uInt16 n )
+EditUndoDelContent::EditUndoDelContent( ImpEditEngine* _pImpEE, ContentNode* pNode, sal_uInt32 n )
 					: EditUndo( EDITUNDO_DELCONTENT, _pImpEE )
 {
 	pContentNode = pNode;
@@ -246,7 +246,7 @@ void __EXPORT EditUndoDelContent::Redo()
 // -----------------------------------------------------------------------
 // EditUndoConnectParas
 // ------------------------------------------------------------------------
-EditUndoConnectParas::EditUndoConnectParas( ImpEditEngine* _pImpEE, sal_uInt16 nN, sal_uInt16 nSP,
+EditUndoConnectParas::EditUndoConnectParas( ImpEditEngine* _pImpEE, sal_uInt32 nN, sal_uInt16 nSP,
 											const SfxItemSet& rLeftParaAttribs, const SfxItemSet& rRightParaAttribs,
 											const SfxStyleSheet* pLeftStyle, const SfxStyleSheet* pRightStyle, sal_Bool bBkwrd )
 					: 	EditUndo( EDITUNDO_CONNECTPARAS, _pImpEE ),
@@ -296,7 +296,7 @@ void __EXPORT EditUndoConnectParas::Undo()
 	if ( GetImpEditEngine()->GetStyleSheetPool() ) 
 	{
 		if ( aLeftStyleName.Len() )
-			GetImpEditEngine()->SetStyleSheet( (sal_uInt16)nNode, (SfxStyleSheet*)GetImpEditEngine()->GetStyleSheetPool()->Find( aLeftStyleName, eLeftStyleFamily ) );
+			GetImpEditEngine()->SetStyleSheet( nNode, (SfxStyleSheet*)GetImpEditEngine()->GetStyleSheetPool()->Find( aLeftStyleName, eLeftStyleFamily ) );
 		if ( aRightStyleName.Len() )
 			GetImpEditEngine()->SetStyleSheet( nNode+1, (SfxStyleSheet*)GetImpEditEngine()->GetStyleSheetPool()->Find( aRightStyleName, eRightStyleFamily ) );
 	}
@@ -315,7 +315,7 @@ void __EXPORT EditUndoConnectParas::Redo()
 // -----------------------------------------------------------------------
 // EditUndoSplitPara
 // ------------------------------------------------------------------------
-EditUndoSplitPara::EditUndoSplitPara( ImpEditEngine* _pImpEE, sal_uInt16 nN, sal_uInt16 nSP )
+EditUndoSplitPara::EditUndoSplitPara( ImpEditEngine* _pImpEE, sal_uInt32 nN, sal_uInt16 nSP )
 					: EditUndo( EDITUNDO_SPLITPARA, _pImpEE )
 {
 	nNode	= nN;
@@ -459,7 +459,7 @@ void __EXPORT EditUndoInsertFeature::Redo()
 // EditUndoMoveParagraphs
 // ------------------------------------------------------------------------
 EditUndoMoveParagraphs::EditUndoMoveParagraphs
-							( ImpEditEngine* _pImpEE, const Range& rParas, sal_uInt16 n )
+							( ImpEditEngine* _pImpEE, const Range& rParas, sal_uInt32 n )
 							: 	EditUndo( EDITUNDO_MOVEPARAGRAPHS, _pImpEE ),
 								nParagraphs( rParas )
 {
@@ -489,7 +489,7 @@ void __EXPORT EditUndoMoveParagraphs::Undo()
 	else
 		nTmpDest += aTmpRange.Len();
 
-	EditSelection aNewSel( GetImpEditEngine()->MoveParagraphs( aTmpRange, (sal_uInt16)nTmpDest, 0 ) );
+	EditSelection aNewSel( GetImpEditEngine()->MoveParagraphs( aTmpRange, (sal_uInt32)nTmpDest, 0 ) );
 	GetImpEditEngine()->GetActiveView()->GetImpEditView()->SetEditSelection( aNewSel );
 }
 
@@ -503,7 +503,7 @@ void __EXPORT EditUndoMoveParagraphs::Redo()
 // -----------------------------------------------------------------------
 // EditUndoSetStyleSheet
 // ------------------------------------------------------------------------
-EditUndoSetStyleSheet::EditUndoSetStyleSheet( ImpEditEngine* _pImpEE, sal_uInt16 nP,
+EditUndoSetStyleSheet::EditUndoSetStyleSheet( ImpEditEngine* _pImpEE, sal_uInt32 nP,
 						const XubString& rPrevName, SfxStyleFamily ePrevFam,
 						const XubString& rNewName, SfxStyleFamily eNewFam,
 						const SfxItemSet& rPrevParaAttribs )
@@ -537,7 +537,7 @@ void __EXPORT EditUndoSetStyleSheet::Redo()
 // -----------------------------------------------------------------------
 // EditUndoSetParaAttribs
 // ------------------------------------------------------------------------
-EditUndoSetParaAttribs::EditUndoSetParaAttribs( ImpEditEngine* _pImpEE, sal_uInt16 nP, const SfxItemSet& rPrevItems, const SfxItemSet& rNewItems )
+EditUndoSetParaAttribs::EditUndoSetParaAttribs( ImpEditEngine* _pImpEE, sal_uInt32 nP, const SfxItemSet& rPrevItems, const SfxItemSet& rNewItems )
 	: EditUndo( EDITUNDO_PARAATTRIBS, _pImpEE ), 
 	  aPrevItems( rPrevItems ),
 	  aNewItems(rNewItems )
@@ -607,7 +607,7 @@ void __EXPORT EditUndoSetAttribs::Undo()
 	DBG_ASSERT( GetImpEditEngine()->GetActiveView(), "Undo/Redo: Keine Active View!" );
 	ImpEditEngine* _pImpEE = GetImpEditEngine();
 	sal_Bool bFields = sal_False;
-	for ( sal_uInt16 nPara = aESel.nStartPara; nPara <= aESel.nEndPara; nPara++ )
+	for ( sal_uInt32 nPara = aESel.nStartPara; nPara <= aESel.nEndPara; nPara++ )
 	{
 		ContentAttribsInfo* pInf = aPrevAttribs[ (sal_uInt16)(nPara-aESel.nStartPara) ];
 		DBG_ASSERT( pInf, "Undo (SetAttribs): pInf = NULL!" );
diff --git a/main/editeng/source/editeng/editundo.hxx b/main/editeng/source/editeng/editundo.hxx
index 89e2a5a921..823f6dad1e 100644
--- a/main/editeng/source/editeng/editundo.hxx
+++ b/main/editeng/source/editeng/editundo.hxx
@@ -44,13 +44,13 @@ class EditUndoDelContent : public EditUndo
 {
 private:
 	sal_Bool 			bDelObject;
-	sal_uInt16			nNode;
+	sal_uInt32			nNode;
 	ContentNode* 	pContentNode;	// Zeigt auf das gueltige,
 									// nicht zerstoerte Objekt!
 
 public:
 					TYPEINFO();
-					EditUndoDelContent( ImpEditEngine* pImpEE, ContentNode* pNode, sal_uInt16 nPortio );
+					EditUndoDelContent( ImpEditEngine* pImpEE, ContentNode* pNode, sal_uInt32 nPortio );
 					~EditUndoDelContent();
 
 	virtual void 	Undo();
@@ -63,7 +63,7 @@ public:
 class EditUndoConnectParas : public EditUndo
 {
 private:
-	sal_uInt16			nNode;
+	sal_uInt32			nNode;
 	sal_uInt16			nSepPos;
 	SfxItemSet		aLeftParaAttribs;
 	SfxItemSet		aRightParaAttribs;
@@ -78,7 +78,7 @@ private:
 
 public:
 					TYPEINFO();
-					EditUndoConnectParas( ImpEditEngine* pImpEE, sal_uInt16 nNode, sal_uInt16 nSepPos,
+					EditUndoConnectParas( ImpEditEngine* pImpEE, sal_uInt32 nNode, sal_uInt16 nSepPos,
 											const SfxItemSet& rLeftParaAttribs, const SfxItemSet& rRightParaAttribs,
 											const SfxStyleSheet* pLeftStyle, const SfxStyleSheet* pRightStyle, sal_Bool bBackward );
 					~EditUndoConnectParas();
@@ -93,12 +93,12 @@ public:
 class EditUndoSplitPara : public EditUndo
 {
 private:
-	sal_uInt16			nNode;
+	sal_uInt32			nNode;
 	sal_uInt16			nSepPos;
 
 public:
 					TYPEINFO();
-					EditUndoSplitPara( ImpEditEngine* pImpEE, sal_uInt16 nNode, sal_uInt16 nSepPos );
+					EditUndoSplitPara( ImpEditEngine* pImpEE, sal_uInt32 nNode, sal_uInt16 nSepPos );
 					~EditUndoSplitPara();
 
 	virtual void 	Undo();
@@ -173,11 +173,11 @@ class EditUndoMoveParagraphs: public EditUndo
 {
 private:
 	Range			nParagraphs;
-	sal_uInt16 			nDest;
+	sal_uInt32 			nDest;
 
 public:
 					TYPEINFO();
-					EditUndoMoveParagraphs( ImpEditEngine* pImpEE, const Range& rParas, sal_uInt16 nDest );
+					EditUndoMoveParagraphs( ImpEditEngine* pImpEE, const Range& rParas, sal_uInt32 nDest );
 					~EditUndoMoveParagraphs();
 
 	virtual void	Undo();
@@ -190,7 +190,7 @@ public:
 class EditUndoSetStyleSheet: public EditUndo
 {
 private:
-	sal_uInt16			nPara;
+	sal_uInt32			nPara;
 	XubString		aPrevName;
 	XubString		aNewName;
 	SfxStyleFamily	ePrevFamily;
@@ -200,7 +200,7 @@ private:
 public:
 					TYPEINFO();
 					
-					EditUndoSetStyleSheet( ImpEditEngine* pImpEE, sal_uInt16 nPara,
+					EditUndoSetStyleSheet( ImpEditEngine* pImpEE, sal_uInt32 nPara,
 						const XubString& rPrevName, SfxStyleFamily ePrevFamily,
 						const XubString& rNewName, SfxStyleFamily eNewFamily,
 						const SfxItemSet& rPrevParaAttribs );
@@ -216,13 +216,13 @@ public:
 class EditUndoSetParaAttribs: public EditUndo
 {
 private:
-	sal_uInt16			nPara;
+	sal_uInt32			nPara;
 	SfxItemSet		aPrevItems;
 	SfxItemSet		aNewItems;
 
 public:
 					TYPEINFO();
-					EditUndoSetParaAttribs( ImpEditEngine* pImpEE, sal_uInt16 nPara, const SfxItemSet& rPrevItems, const SfxItemSet& rNewItems );
+					EditUndoSetParaAttribs( ImpEditEngine* pImpEE, sal_uInt32 nPara, const SfxItemSet& rPrevItems, const SfxItemSet& rNewItems );
 					~EditUndoSetParaAttribs();
 
 	virtual void	Undo();
diff --git a/main/editeng/source/editeng/editview.cxx b/main/editeng/source/editeng/editview.cxx
index df8650e477..daf0ce7094 100644
--- a/main/editeng/source/editeng/editview.cxx
+++ b/main/editeng/source/editeng/editview.cxx
@@ -500,7 +500,7 @@ void EditView::SetAttribs( const SfxItemSet& rSet )
 	PIMPEE->FormatAndUpdate( this );
 }
 
-void EditView::SetParaAttribs( const SfxItemSet& rSet, sal_uInt16 nPara )
+void EditView::SetParaAttribs( const SfxItemSet& rSet, sal_uInt32 nPara )
 {
 	DBG_CHKTHIS( EditView, 0 );
 	DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
@@ -544,7 +544,7 @@ void EditView::RemoveAttribs( sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich )
 	PIMPEE->FormatAndUpdate( this );
 }
 
-void EditView::RemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich )
+void EditView::RemoveCharAttribs( sal_uInt32 nPara, sal_uInt16 nWhich )
 {
 	DBG_CHKTHIS( EditView, 0 );
 	DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
@@ -658,7 +658,7 @@ sal_Bool EditView::IsPasteEnabled() const
 	return pImpEditView->IsPasteEnabled();
 }
 
-Point EditView::GetWindowPosTopLeft( sal_uInt16 nParagraph )
+Point EditView::GetWindowPosTopLeft( sal_uInt32 nParagraph )
 {
 	DBG_CHKTHIS( EditView, 0 );
 	DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
@@ -666,14 +666,14 @@ Point EditView::GetWindowPosTopLeft( sal_uInt16 nParagraph )
 	return pImpEditView->GetWindowPos( aDocPos );
 }
 
-sal_uInt16 EditView::GetParagraph( const Point& rMousePosPixel )
+sal_uInt32 EditView::GetParagraph( const Point& rMousePosPixel )
 {
 	DBG_CHKTHIS( EditView, 0 );
 	DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
 	Point aMousePos( rMousePosPixel );
 	aMousePos = GetWindow()->PixelToLogic( aMousePos );
 	Point aDocPos( pImpEditView->GetDocPos( aMousePos ) );
-	sal_uInt16 nParagraph = PIMPEE->GetParaPortions().FindParagraph( aDocPos.Y() );
+	sal_uInt32 nParagraph = PIMPEE->GetParaPortions().FindParagraph( aDocPos.Y() );
 	return nParagraph;
 }
 
@@ -712,7 +712,7 @@ XubString EditView::GetSelected()
 	return PIMPEE->GetSelected( pImpEditView->GetEditSelection() );
 }
 
-void EditView::MoveParagraphs( Range aParagraphs, sal_uInt16 nNewPos )
+void EditView::MoveParagraphs( Range aParagraphs, sal_uInt32 nNewPos )
 {
 	DBG_CHKTHIS( EditView, 0 );
 	DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
@@ -733,7 +733,7 @@ void EditView::MoveParagraphs( long nDiff )
         nDest++;
     DBG_ASSERT( ( nDest >= 0 ) && ( nDest <= pImpEditView->pEditEngine->GetParagraphCount() ), "MoveParagraphs - wrong Parameters!" );
     MoveParagraphs( aRange,
-        sal::static_int_cast< sal_uInt16 >( nDest ) );
+        sal::static_int_cast< sal_uInt32 >( nDest ) );
 }
 
 void EditView::SetBackgroundColor( const Color& rColor )
@@ -848,11 +848,11 @@ SfxStyleSheet* EditView::GetStyleSheet() const
 
 	EditSelection aSel( pImpEditView->GetEditSelection() );
 	aSel.Adjust( PIMPEE->GetEditDoc() );
-	sal_uInt16 nStartPara = PIMPEE->GetEditDoc().GetPos( aSel.Min().GetNode() );
-	sal_uInt16 nEndPara = PIMPEE->GetEditDoc().GetPos( aSel.Max().GetNode() );
+	sal_uInt32 nStartPara = PIMPEE->GetEditDoc().GetPos( aSel.Min().GetNode() );
+	sal_uInt32 nEndPara = PIMPEE->GetEditDoc().GetPos( aSel.Max().GetNode() );
 
 	SfxStyleSheet* pStyle = NULL;
-	for ( sal_uInt16 n = nStartPara; n <= nEndPara; n++ )
+	for ( sal_uInt32 n = nStartPara; n <= nEndPara; n++ )
 	{
 		SfxStyleSheet* pTmpStyle = PIMPEE->GetStyleSheet( n );
 		if ( ( n != nStartPara ) && ( pStyle != pTmpStyle ) )
@@ -1343,18 +1343,19 @@ void EditView::InsertField( const SvxFieldItem& rFld )
 const SvxFieldItem* EditView::GetFieldUnderMousePointer() const
 {
 	DBG_CHKTHIS( EditView, 0 );
-	sal_uInt16 nPara, nPos;
+	sal_uInt32 nPara;
+	sal_uInt16 nPos;
 	return GetFieldUnderMousePointer( nPara, nPos );
 }
 
-const SvxFieldItem* EditView::GetField( const Point& rPos, sal_uInt16* pPara, sal_uInt16* pPos ) const
+const SvxFieldItem* EditView::GetField( const Point& rPos, sal_uInt32* pPara, sal_uInt16* pPos ) const
 {
 	DBG_CHKTHIS( EditView, 0 );
 	DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
 	return pImpEditView->GetField( rPos, pPara, pPos );
 }
 
-const SvxFieldItem* EditView::GetFieldUnderMousePointer( sal_uInt16& nPara, sal_uInt16& nPos ) const
+const SvxFieldItem* EditView::GetFieldUnderMousePointer( sal_uInt32& nPara, sal_uInt16& nPos ) const
 {
 	DBG_CHKTHIS( EditView, 0 );
 	DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
@@ -1476,7 +1477,7 @@ void EditView::ChangeFontSize( bool bGrow, const FontList* pFontList )
 
     if( aSel.HasRange() )
     {
-        for( sal_uInt16 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+        for( sal_uInt32 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
         {
             SvUShorts aPortions;
             rEditEngine.GetPortions( nPara, aPortions );
diff --git a/main/editeng/source/editeng/edtspell.cxx b/main/editeng/source/editeng/edtspell.cxx
index 95c85ec17c..5c733feed0 100644
--- a/main/editeng/source/editeng/edtspell.cxx
+++ b/main/editeng/source/editeng/edtspell.cxx
@@ -681,7 +681,7 @@ const String* EdtAutoCorrDoc::GetPrevPara( sal_Bool )
 	bAllowUndoAction = sal_False;	// Jetzt nicht mehr...
 
 	ContentList& rNodes = pImpEE->GetEditDoc();
-	sal_uInt16 nPos = rNodes.GetPos( pCurNode );
+	sal_uInt32 nPos = rNodes.GetPos( pCurNode );
 
 	// Sonderbehandlung: Bullet => Absatzanfang => einfach NULL returnen...
 	const SfxBoolItem& rBulletState = (const SfxBoolItem&)
@@ -698,7 +698,7 @@ const String* EdtAutoCorrDoc::GetPrevPara( sal_Bool )
 	if ( bBullet )
 		return NULL;
 
-	for ( sal_uInt16 n = nPos; n; )
+	for ( sal_uInt32 n = nPos; n; )
 	{
 		n--;
 		ContentNode* pNode = rNodes[n];
@@ -751,7 +751,7 @@ LanguageType EdtAutoCorrDoc::GetLanguage( sal_uInt16 nPos, sal_Bool ) const
 
 void EdtAutoCorrDoc::ImplStartUndoAction()
 {
-	sal_uInt16 nPara = pImpEE->GetEditDoc().GetPos( pCurNode );
+	sal_uInt32 nPara = pImpEE->GetEditDoc().GetPos( pCurNode );
 	ESelection aSel( nPara, nCursor, nPara, nCursor );
 	pImpEE->UndoActionStart( EDITUNDO_INSERT, aSel );
 	bUndoAction = sal_True;
diff --git a/main/editeng/source/editeng/eehtml.cxx b/main/editeng/source/editeng/eehtml.cxx
index 48a1c1d8b3..448286cd14 100644
--- a/main/editeng/source/editeng/eehtml.cxx
+++ b/main/editeng/source/editeng/eehtml.cxx
@@ -225,7 +225,7 @@ void EditHTMLParser::NextToken( int nToken )
 	case HTML_CENTER_ON:
 	case HTML_CENTER_OFF:	// if ( bInPara )
 							{
-								sal_uInt16 nNode = pImpEditEngine->GetEditDoc().GetPos( aCurSel.Max().GetNode() );
+								sal_uInt32 nNode = pImpEditEngine->GetEditDoc().GetPos( aCurSel.Max().GetNode() );
 								SfxItemSet aItems( aCurSel.Max().GetNode()->GetContentAttribs().GetItems() );
 								aItems.ClearItem( EE_PARA_JUST );
 								if ( nToken == HTML_CENTER_ON )
@@ -551,7 +551,7 @@ void EditHTMLParser::ImpSetAttribs( const SfxItemSet& rItems, EditSelection* pSe
 	}
 
 	ContentNode* pSN = aStartPaM.GetNode();
-	sal_uInt16 nStartNode = pImpEditEngine->GetEditDoc().GetPos( pSN );
+	sal_uInt32 nStartNode = pImpEditEngine->GetEditDoc().GetPos( pSN );
 
 	// Wenn ein Attribut von 0 bis aktuelle Absatzlaenge geht,
 	// soll es ein Absatz-Attribut sein!
@@ -562,12 +562,12 @@ void EditHTMLParser::ImpSetAttribs( const SfxItemSet& rItems, EditSelection* pSe
 	// HTML eigentlich nicht:
 #ifdef DBG_UTIL
 	ContentNode* pEN = aEndPaM.GetNode();
-	sal_uInt16 nEndNode = pImpEditEngine->GetEditDoc().GetPos( pEN );
+	sal_uInt32 nEndNode = pImpEditEngine->GetEditDoc().GetPos( pEN );
 	DBG_ASSERT( nStartNode == nEndNode, "ImpSetAttribs: Mehrere Absaetze?" );
 #endif
 
 /*
-	for ( sal_uInt16 z = nStartNode+1; z < nEndNode; z++ )
+	for ( sal_uInt32 z = nStartNode+1; z < nEndNode; z++ )
 	{
 		DBG_ASSERT( pImpEditEngine->GetEditDoc().SaveGetObject( z ), "Node existiert noch nicht(RTF)" );
 		pImpEditEngine->SetParaAttribs( z, rSet.GetAttrSet() );
@@ -624,7 +624,7 @@ void EditHTMLParser::ImpSetStyleSheet( sal_uInt16 nHLevel )
 			// dass diese auch in der App liegen sollten, damit sie beim
 			// fuettern in eine andere Engine auch noch da sind...
 
-			sal_uInt16 nNode = pImpEditEngine->GetEditDoc().GetPos( aCurSel.Max().GetNode() );
+			sal_uInt32 nNode = pImpEditEngine->GetEditDoc().GetPos( aCurSel.Max().GetNode() );
 //			SfxItemSet aItems( pImpEditEngine->GetEmptyItemSet() );
 			SfxItemSet aItems( aCurSel.Max().GetNode()->GetContentAttribs().GetItems() );
 
diff --git a/main/editeng/source/editeng/eertfpar.cxx b/main/editeng/source/editeng/eertfpar.cxx
index 1b639e46cc..03f3c11b2a 100644
--- a/main/editeng/source/editeng/eertfpar.cxx
+++ b/main/editeng/source/editeng/eertfpar.cxx
@@ -129,7 +129,7 @@ SvParserState __EXPORT EditRTFParser::CallParser()
 	if ( nLastAction == ACTION_INSERTPARABRK )
 	{
 		ContentNode* pCurNode = aCurSel.Max().GetNode();
-		sal_uInt16 nPara = pImpEditEngine->GetEditDoc().GetPos( pCurNode );
+		sal_uInt32 nPara = pImpEditEngine->GetEditDoc().GetPos( pCurNode );
 		ContentNode* pPrevNode = pImpEditEngine->GetEditDoc().SaveGetObject( nPara-1 );
 		DBG_ASSERT( pPrevNode, "Ungueltiges RTF-Dokument ?!" );
 		EditSelection aSel;
@@ -172,9 +172,9 @@ void EditRTFParser::AddRTFDefaultValues( const EditPaM& rStart, const EditPaM& r
 	SvxFontItem aFontItem( aDefFont.GetFamily(), aDefFont.GetName(),
 					aDefFont.GetStyleName(), aDefFont.GetPitch(), aDefFont.GetCharSet(), EE_CHAR_FONTINFO );
 
-	sal_uInt16 nStartPara = pImpEditEngine->GetEditDoc().GetPos( rStart.GetNode() );
-	sal_uInt16 nEndPara = pImpEditEngine->GetEditDoc().GetPos( rEnd.GetNode() );
-	for ( sal_uInt16 nPara = nStartPara; nPara <= nEndPara; nPara++ )
+	sal_uInt32 nStartPara = pImpEditEngine->GetEditDoc().GetPos( rStart.GetNode() );
+	sal_uInt32 nEndPara = pImpEditEngine->GetEditDoc().GetPos( rEnd.GetNode() );
+	for ( sal_uInt32 nPara = nStartPara; nPara <= nEndPara; nPara++ )
 	{
 		ContentNode* pNode = pImpEditEngine->GetEditDoc().SaveGetObject( nPara );
 		DBG_ASSERT( pNode, "AddRTFDefaultValues - Kein Absatz ?!" );
@@ -291,7 +291,7 @@ void __EXPORT EditRTFParser::SetEndPrevPara( SvxNodeIdx*& rpNodePos,
 	//              angewendet.
 
 	ContentNode* pN = aCurSel.Max().GetNode();
-	sal_uInt16 nCurPara = pImpEditEngine->GetEditDoc().GetPos( pN );
+	sal_uInt32 nCurPara = pImpEditEngine->GetEditDoc().GetPos( pN );
 	DBG_ASSERT( nCurPara != 0, "Absatz gleich 0: SetEnfPrevPara" );
 	if ( nCurPara )
 		nCurPara--;
@@ -364,8 +364,8 @@ void __EXPORT EditRTFParser::SetAttrInDoc( SvxRTFItemStackType &rSet )
 
 	ContentNode* pSN = aStartPaM.GetNode();
 	ContentNode* pEN = aEndPaM.GetNode();
-	sal_uInt16 nStartNode = pImpEditEngine->GetEditDoc().GetPos( pSN );
-	sal_uInt16 nEndNode = pImpEditEngine->GetEditDoc().GetPos( pEN );
+	sal_uInt32 nStartNode = pImpEditEngine->GetEditDoc().GetPos( pSN );
+	sal_uInt32 nEndNode = pImpEditEngine->GetEditDoc().GetPos( pEN );
 	sal_Int16 nOutlLevel = 0xff;
 
 	if ( rSet.StyleNo() && pImpEditEngine->GetStyleSheetPool() && pImpEditEngine->GetStatus().DoImportRTFStyleSheets() )
@@ -384,7 +384,7 @@ void __EXPORT EditRTFParser::SetAttrInDoc( SvxRTFItemStackType &rSet )
 
 	// Achtung: Selektion kann ueber mehrere Absaetze gehen.
 	// Alle vollstaendigen Absaetze sind Absatzattribute...
-	for ( sal_uInt16 z = nStartNode+1; z < nEndNode; z++ )
+	for ( sal_uInt32 z = nStartNode+1; z < nEndNode; z++ )
 	{
 		DBG_ASSERT( pImpEditEngine->GetEditDoc().SaveGetObject( z ), "Node existiert noch nicht(RTF)" );
 		pImpEditEngine->SetParaAttribs( z, rSet.GetAttrSet() );
@@ -422,7 +422,7 @@ void __EXPORT EditRTFParser::SetAttrInDoc( SvxRTFItemStackType &rSet )
 	// OutlLevel...
 	if ( nOutlLevel != 0xff )
 	{
-		for ( sal_uInt16 n = nStartNode; n <= nEndNode; n++ ) 
+		for ( sal_uInt32 n = nStartNode; n <= nEndNode; n++ ) 
 		{
 			ContentNode* pNode = pImpEditEngine->GetEditDoc().SaveGetObject( n );
 			pNode->GetContentAttribs().GetItems().Put( SfxInt16Item( EE_PARA_OUTLLEVEL, nOutlLevel ) );
diff --git a/main/editeng/source/editeng/impedit.cxx b/main/editeng/source/editeng/impedit.cxx
index d56206dc8a..c6229a51c1 100644
--- a/main/editeng/source/editeng/impedit.cxx
+++ b/main/editeng/source/editeng/impedit.cxx
@@ -191,10 +191,10 @@ void ImpEditView::DrawSelection( EditSelection aTmpSel, Region* pRegion, OutputD
 
 	ContentNode* pStartNode = aTmpSel.Min().GetNode();
 	ContentNode* pEndNode = aTmpSel.Max().GetNode();
-	sal_uInt16 nStartPara = pEditEngine->pImpEditEngine->GetEditDoc().GetPos( pStartNode );
-	sal_uInt16 nEndPara = pEditEngine->pImpEditEngine->GetEditDoc().GetPos( pEndNode );
+	sal_uInt32 nStartPara = pEditEngine->pImpEditEngine->GetEditDoc().GetPos( pStartNode );
+	sal_uInt32 nEndPara = pEditEngine->pImpEditEngine->GetEditDoc().GetPos( pEndNode );
 	// ueber die Absaetze iterieren....
-	for ( sal_uInt16 nPara = nStartPara; nPara <= nEndPara; nPara++ )
+	for ( sal_uInt32 nPara = nStartPara; nPara <= nEndPara; nPara++ )
 	{
 		ParaPortion* pTmpPortion = pEditEngine->pImpEditEngine->GetParaPortions().SaveGetObject( nPara );
 		DBG_ASSERT( pTmpPortion, "Portion in Selektion nicht gefunden!" );
@@ -670,8 +670,8 @@ void ImpEditView::ShowCursor( sal_Bool bGotoCursor, sal_Bool bForceVisCursor, sa
 	EditPaM aPaM( aEditSelection.Max() );
 
     sal_uInt16 nTextPortionStart = 0;
-    sal_uInt16 nPara = pEditEngine->pImpEditEngine->aEditDoc.GetPos( aPaM.GetNode() );
-    if (nPara == USHRT_MAX) // #i94322
+    sal_uInt32 nPara = pEditEngine->pImpEditEngine->aEditDoc.GetPos( aPaM.GetNode() );
+    if (nPara == EE_PARA_MAX) // #i94322
         return;
     ParaPortion* pParaPortion = pEditEngine->pImpEditEngine->GetParaPortions().GetObject( nPara );
 
@@ -1169,8 +1169,8 @@ String ImpEditView::SpellIgnoreOrAddWord( sal_Bool bAdd )
 					xDic->add( aWord, sal_False, String() );
 			}
 			const EditDoc& rDoc = pEditEngine->pImpEditEngine->GetEditDoc();
-			sal_uInt16 nNodes = rDoc.Count();
-			for ( sal_uInt16 n = 0; n < nNodes; n++ )
+			sal_uInt32 nNodes = rDoc.Count();
+			for ( sal_uInt32 n = 0; n < nNodes; n++ )
 			{
 				ContentNode* pNode = rDoc.GetObject( n );
 				pNode->GetWrongList()->MarkWrongsInvalid();
@@ -1198,7 +1198,7 @@ void ImpEditView::DeleteSelected()
 	ShowCursor( DoAutoScroll(), sal_True );
 }
 
-const SvxFieldItem* ImpEditView::GetField( const Point& rPos, sal_uInt16* pPara, sal_uInt16* pPos ) const
+const SvxFieldItem* ImpEditView::GetField( const Point& rPos, sal_uInt32* pPara, sal_uInt16* pPos ) const
 {
 	if( !GetOutputArea().IsInside( rPos ) )
 		return 0;
@@ -1231,10 +1231,10 @@ const SvxFieldItem* ImpEditView::GetField( const Point& rPos, sal_uInt16* pPara,
 	return NULL;
 }
 
-sal_Bool ImpEditView::IsBulletArea( const Point& rPos, sal_uInt16* pPara )
+sal_Bool ImpEditView::IsBulletArea( const Point& rPos, sal_uInt32* pPara )
 {
     if ( pPara )
-        *pPara = 0xFFFF;
+        *pPara = EE_PARA_NOT_FOUND;
 
     if( !GetOutputArea().IsInside( rPos ) )
 		return sal_False;
@@ -1244,7 +1244,7 @@ sal_Bool ImpEditView::IsBulletArea( const Point& rPos, sal_uInt16* pPara )
 
 	if ( aPaM.GetIndex() == 0 )
 	{
-        sal_uInt16 nPara = pEditEngine->pImpEditEngine->aEditDoc.GetPos( aPaM.GetNode() );
+        sal_uInt32 nPara = pEditEngine->pImpEditEngine->aEditDoc.GetPos( aPaM.GetNode() );
 		Rectangle aBulletArea = pEditEngine->GetBulletArea( nPara );
         long nY = pEditEngine->GetDocPosTopLeft( nPara ).Y();
         ParaPortion* pParaPortion = pEditEngine->pImpEditEngine->GetParaPortions().GetObject( nPara );
@@ -1378,9 +1378,9 @@ sal_Bool ImpEditView::IsInSelection( const EditPaM& rPaM )
 
 	aSel.Adjust( pEditEngine->pImpEditEngine->GetEditDoc() );
 
-	sal_uInt16 nStartNode = pEditEngine->pImpEditEngine->GetEditDoc().GetPos( aSel.Min().GetNode() );
-	sal_uInt16 nEndNode = pEditEngine->pImpEditEngine->GetEditDoc().GetPos( aSel.Max().GetNode() );
-	sal_uInt16 nCurNode = pEditEngine->pImpEditEngine->GetEditDoc().GetPos( rPaM.GetNode() );
+	sal_uInt32 nStartNode = pEditEngine->pImpEditEngine->GetEditDoc().GetPos( aSel.Min().GetNode() );
+	sal_uInt32 nEndNode = pEditEngine->pImpEditEngine->GetEditDoc().GetPos( aSel.Max().GetNode() );
+	sal_uInt32 nCurNode = pEditEngine->pImpEditEngine->GetEditDoc().GetPos( rPaM.GetNode() );
 
 	if ( ( nCurNode > nStartNode ) && ( nCurNode < nEndNode ) )
 		return sal_True;
@@ -1569,7 +1569,8 @@ void ImpEditView::dragGestureRecognized( const ::com::sun::star::datatransfer::d
     else
     {
 	    // Field?!
-		sal_uInt16 nPara, nPos;
+		sal_uInt32 nPara;
+		sal_uInt16 nPos;
 	    Point aMousePos = GetWindow()->PixelToLogic( aMousePosPixel );
 		const SvxFieldItem* pField = GetField( aMousePos, &nPara, &nPos );
 		if ( pField )
@@ -1591,7 +1592,7 @@ void ImpEditView::dragGestureRecognized( const ::com::sun::star::datatransfer::d
             EditPaM aStartPaM( pEditEngine->pImpEditEngine->GetEditDoc().GetObject( nPara ), 0 );
             EditPaM aEndPaM( aStartPaM );
             const SfxInt16Item& rLevel = (const SfxInt16Item&) pEditEngine->GetParaAttrib( nPara, EE_PARA_OUTLLEVEL );
-            for ( sal_uInt16 n = nPara +1; n < pEditEngine->pImpEditEngine->GetEditDoc().Count(); n++ )
+            for ( sal_uInt32 n = nPara +1; n < pEditEngine->pImpEditEngine->GetEditDoc().Count(); n++ )
             {
                 const SfxInt16Item& rL = (const SfxInt16Item&) pEditEngine->GetParaAttrib( n, EE_PARA_OUTLLEVEL );
                 if ( rL.GetValue() > rLevel.GetValue() )
@@ -1650,7 +1651,7 @@ void ImpEditView::dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSo
 				ESelection aNewSel( pDragAndDropInfo->aDropSel.nEndPara, pDragAndDropInfo->aDropSel.nEndPos,
 									pDragAndDropInfo->aDropSel.nEndPara, pDragAndDropInfo->aDropSel.nEndPos );
 				sal_Bool bBeforeSelection = aDropPos.IsLess( pDragAndDropInfo->aBeginDragSel );
-				sal_uInt16 nParaDiff = pDragAndDropInfo->aBeginDragSel.nEndPara - pDragAndDropInfo->aBeginDragSel.nStartPara;
+				sal_uInt32 nParaDiff = pDragAndDropInfo->aBeginDragSel.nEndPara - pDragAndDropInfo->aBeginDragSel.nStartPara;
 				if ( bBeforeSelection )
 				{
 					// aToBeDelSel anpassen.
@@ -1882,7 +1883,7 @@ void ImpEditView::dragOver( const ::com::sun::star::datatransfer::dnd::DropTarge
 	        pDragAndDropInfo->aDropDest = aPaM;
             if ( pDragAndDropInfo->bOutlinerMode )
             {
-                sal_uInt16 nPara = pEditEngine->pImpEditEngine->aEditDoc.GetPos( aPaM.GetNode() );
+                sal_uInt32 nPara = pEditEngine->pImpEditEngine->aEditDoc.GetPos( aPaM.GetNode() );
 		        ParaPortion* pPPortion = pEditEngine->pImpEditEngine->GetParaPortions().SaveGetObject( nPara );
                 long nDestParaStartY = pEditEngine->pImpEditEngine->GetParaPortions().GetYOffset( pPPortion );
                 long nRel = aDocPos.Y() - nDestParaStartY;
diff --git a/main/editeng/source/editeng/impedit.hxx b/main/editeng/source/editeng/impedit.hxx
index a1ebd74090..1170f7ef72 100644
--- a/main/editeng/source/editeng/impedit.hxx
+++ b/main/editeng/source/editeng/impedit.hxx
@@ -116,7 +116,7 @@ struct DragAndDropInfo
 	sal_uInt16			nCursorWidth;
     ESelection          aBeginDragSel;
 	EditPaM				aDropDest;
-    sal_uInt16              nOutlinerDropDest;
+    sal_uInt32              nOutlinerDropDest;
 	ESelection			aDropSel;
 	VirtualDevice*		pBackground;
 	const SvxFieldItem*	pField;
@@ -326,7 +326,7 @@ public:
     void            AddDragAndDropListeners();
     void            RemoveDragAndDropListeners();
 
-    sal_Bool            IsBulletArea( const Point& rPos, sal_uInt16* pPara );
+    sal_Bool            IsBulletArea( const Point& rPos, sal_uInt32* pPara );
 
 //	Fuer die SelectionEngine...
 	void			CreateAnchor();
@@ -366,7 +366,7 @@ public:
 	sal_Bool			IsWrongSpelledWord( const EditPaM& rPaM, sal_Bool bMarkIfWrong );
 	String			SpellIgnoreOrAddWord( sal_Bool bAdd );
 
-    const SvxFieldItem* GetField( const Point& rPos, sal_uInt16* pPara, sal_uInt16* pPos ) const;
+    const SvxFieldItem* GetField( const Point& rPos, sal_uInt32* pPara, sal_uInt16* pPos ) const;
     void                DeleteSelected();
 
 	// Ggf. mehr als OutputArea invalidieren, fuer den DrawingEngine-Textrahmen...
@@ -545,7 +545,7 @@ private:
 	sal_uInt16			GetParaAttrib( sal_uInt8 nFunc, EditSelection aSel );
 	void				SetCharAttrib( EditSelection aSel, const SfxPoolItem& rItem );
 	void				ParaAttribsToCharAttribs( ContentNode* pNode );
-	void				GetCharAttribs( sal_uInt16 nPara, EECharAttribArray& rLst ) const;
+	void				GetCharAttribs( sal_uInt32 nPara, EECharAttribArray& rLst ) const;
 
 	EditTextObject*		CreateBinTextObject( EditSelection aSelection, SfxItemPool*, sal_Bool bAllowBigObjects = sal_False, sal_uInt16 nBigObjStart = 0 ) const;
 	void 				StoreBinTextObject( SvStream& rOStream, BinTextObject& rTextObject );
@@ -555,7 +555,7 @@ private:
 	EditPaM				Clear();
 	EditPaM				RemoveText();
 	EditPaM				RemoveText( EditSelection aEditSelection );
-	sal_Bool			CreateLines( sal_uInt16 nPara, sal_uInt32 nStartPosY );
+	sal_Bool			CreateLines( sal_uInt32 nPara, sal_uInt32 nStartPosY );
 	void				CreateAndInsertEmptyLine( ParaPortion* pParaPortion, sal_uInt32 nStartPosY );
 	sal_Bool			FinishCreateLines( ParaPortion* pParaPortion );
 	void				CalcCharPositions( ParaPortion* pParaPortion );
@@ -575,11 +575,11 @@ private:
 	EditPaM				ImpInsertText( EditSelection aCurEditSelection, const String& rStr );
 	EditPaM				ImpInsertFeature( EditSelection aEditSelection, const SfxPoolItem& rItem );
 	void				ImpRemoveChars( const EditPaM& rPaM, sal_uInt16 nChars, EditUndoRemoveChars* pCurUndo = 0 );
-	void				ImpRemoveParagraph( sal_uInt16 nPara );
-	EditSelection		ImpMoveParagraphs( Range aParagraphs, sal_uInt16 nNewPos );
+	void				ImpRemoveParagraph( sal_uInt32 nPara );
+	EditSelection		ImpMoveParagraphs( Range aParagraphs, sal_uInt32 nNewPos );
 
 	EditPaM				ImpFastInsertText( EditPaM aPaM, const String& rStr );
-	EditPaM 			ImpFastInsertParagraph( sal_uInt16 nPara );
+	EditPaM 			ImpFastInsertParagraph( sal_uInt32 nPara );
 
 	sal_Bool			ImpCheckRefMapMode();
 
@@ -587,12 +587,12 @@ private:
 
     void                ImpFindKashidas( ContentNode* pNode, sal_uInt16 nStart, sal_uInt16 nEnd, SvUShorts& rArray );
 
-	void				InsertContent( ContentNode* pNode, sal_uInt16 nPos );
-	EditPaM 			SplitContent( sal_uInt16 nNode, sal_uInt16 nSepPos );
-	EditPaM 			ConnectContents( sal_uInt16 nLeftNode, sal_Bool bBackward );
+	void				InsertContent( ContentNode* pNode, sal_uInt32 nPos );
+	EditPaM 			SplitContent( sal_uInt32 nNode, sal_uInt16 nSepPos );
+	EditPaM 			ConnectContents( sal_uInt32 nLeftNode, sal_Bool bBackward );
 
-	void 				ShowParagraph( sal_uInt16 nParagraph, sal_Bool bShow );
-	sal_Bool 			IsParagraphVisible( sal_uInt16 nParagraph );
+	void 				ShowParagraph( sal_uInt32 nParagraph, sal_Bool bShow );
+	sal_Bool 			IsParagraphVisible( sal_uInt32 nParagraph );
 
 	EditPaM				PageUp( const EditPaM& rPaM, EditView* pView);
 	EditPaM				PageDown( const EditPaM& rPaM, EditView* pView);
@@ -616,16 +616,16 @@ private:
     EditPaM             CursorVisualStartEnd( EditView* pEditView, const EditPaM& rPaM, sal_Bool bStart );
 
 
-	void				InitScriptTypes( sal_uInt16 nPara );
+	void				InitScriptTypes( sal_uInt32 nPara );
 	sal_uInt16				GetScriptType( const EditPaM& rPaM, sal_uInt16* pEndPos = NULL ) const;
 	sal_uInt16				GetScriptType( const EditSelection& rSel ) const;
 	sal_Bool				IsScriptChange( const EditPaM& rPaM ) const;
-    sal_Bool                HasScriptType( sal_uInt16 nPara, sal_uInt16 nType ) const;
+    sal_Bool                HasScriptType( sal_uInt32 nPara, sal_uInt16 nType ) const;
 
     sal_Bool                ImplCalcAsianCompression( ContentNode* pNode, TextPortion* pTextPortion, sal_uInt16 nStartPos, sal_Int32* pDXArray, sal_uInt16 n100thPercentFromMax, sal_Bool bManipulateDXArray );
     void                ImplExpandCompressedPortions( EditLine* pLine, ParaPortion* pParaPortion, long nRemainingWidth );
 
-    void                ImplInitLayoutMode( OutputDevice* pOutDev, sal_uInt16 nPara, sal_uInt16 nIndex );
+    void                ImplInitLayoutMode( OutputDevice* pOutDev, sal_uInt32 nPara, sal_uInt16 nIndex );
     void                ImplInitDigitMode( OutputDevice* pOutDev, String* pString, xub_StrLen nStt, xub_StrLen nLen, LanguageType eLang );
 
 	EditPaM				ReadText( SvStream& rInput, EditSelection aSel );
@@ -639,9 +639,9 @@ private:
 	sal_uInt32			WriteHTML( SvStream& rOutput, EditSelection aSel );
 	sal_uInt32			WriteBin( SvStream& rOutput, EditSelection aSel, sal_Bool bStoreUnicode = sal_False ) const;
 
-	void				WriteItemAsRTF( const SfxPoolItem& rItem, SvStream& rOutput, sal_uInt16 nPara, sal_uInt16 nPos,
+	void				WriteItemAsRTF( const SfxPoolItem& rItem, SvStream& rOutput, sal_uInt32 nPara, sal_uInt16 nPos,
 						SvxFontTable& rFontTable, SvxColorList& rColorList );
-	sal_Bool			WriteItemListAsRTF( ItemList& rLst, SvStream& rOutput, sal_uInt16 nPara, sal_uInt16 nPos,
+	sal_Bool			WriteItemListAsRTF( ItemList& rLst, SvStream& rOutput, sal_uInt32 nPara, sal_uInt16 nPos,
 						SvxFontTable& rFontTable, SvxColorList& rColorList );
 	long			    LogicToTwips( long n );
 
@@ -734,9 +734,9 @@ public:
     EEHorizontalTextDirection   GetDefaultHorizontalTextDirection() const { return eDefaultHorizontalTextDirection; }
 
 
-	void				    InitWritingDirections( sal_uInt16 nPara );
-    sal_Bool                    IsRightToLeft( sal_uInt16 nPara ) const;
-    sal_uInt8                    GetRightToLeft( sal_uInt16 nPara, sal_uInt16 nChar, sal_uInt16* pStart = NULL, sal_uInt16* pEnd = NULL );
+	void				    InitWritingDirections( sal_uInt32 nPara );
+    sal_Bool                    IsRightToLeft( sal_uInt32 nPara ) const;
+    sal_uInt8                    GetRightToLeft( sal_uInt32 nPara, sal_uInt16 nChar, sal_uInt16* pStart = NULL, sal_uInt16* pEnd = NULL );
     sal_Bool                    HasDifferentRTLLevels( const ContentNode* pNode );
 
 	void					SetTextRanger( TextRanger* pRanger );
@@ -799,31 +799,31 @@ public:
 
 	EditSelection	MoveCursor( const KeyEvent& rKeyEvent, EditView* pEditView );
 
-	EditSelection	MoveParagraphs( Range aParagraphs, sal_uInt16 nNewPos, EditView* pCurView );
+	EditSelection	MoveParagraphs( Range aParagraphs, sal_uInt32 nNewPos, EditView* pCurView );
 
 	sal_uInt32		CalcTextHeight();
 	sal_uInt32		GetTextHeight() const;
 	sal_uInt32		CalcTextWidth( sal_Bool bIgnoreExtraSpace );
 	sal_uInt32 		CalcLineWidth( ParaPortion* pPortion, EditLine* pLine, sal_Bool bIgnoreExtraSpace );
-	sal_uInt16		GetLineCount( sal_uInt16 nParagraph ) const;
-    sal_uInt16      GetLineLen( sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
-    void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
-    sal_uInt16          GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
-	sal_uInt16		GetLineHeight( sal_uInt16 nParagraph, sal_uInt16 nLine );
-	sal_uInt32		GetParaHeight( sal_uInt16 nParagraph );
-
-    SfxItemSet      GetAttribs( sal_uInt16 nPara, sal_uInt16 nStart, sal_uInt16 nEnd, sal_uInt8 nFlags = 0xFF ) const;
+	sal_uInt16		GetLineCount( sal_uInt32 nParagraph ) const;
+    sal_uInt16      GetLineLen( sal_uInt32 nParagraph, sal_uInt16 nLine ) const;
+    void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nParagraph, sal_uInt16 nLine ) const;
+    sal_uInt16          GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
+	sal_uInt16		GetLineHeight( sal_uInt32 nParagraph, sal_uInt16 nLine );
+	sal_uInt32		GetParaHeight( sal_uInt32 nParagraph );
+
+    SfxItemSet      GetAttribs( sal_uInt32 nPara, sal_uInt16 nStart, sal_uInt16 nEnd, sal_uInt8 nFlags = 0xFF ) const;
 	SfxItemSet		GetAttribs( EditSelection aSel, sal_Bool bOnlyHardAttrib = sal_False  );
 	void			SetAttribs( EditSelection aSel, const SfxItemSet& rSet, sal_uInt8 nSpecial = 0 );
 	void			RemoveCharAttribs( EditSelection aSel, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich = 0 );
-	void			RemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich = 0, sal_Bool bRemoveFeatures = sal_False );
+	void			RemoveCharAttribs( sal_uInt32 nPara, sal_uInt16 nWhich = 0, sal_Bool bRemoveFeatures = sal_False );
 	void			SetFlatMode( sal_Bool bFlat );
 
-	void				SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet );
-	const SfxItemSet& 	GetParaAttribs( sal_uInt16 nPara ) const;
+	void				SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet );
+	const SfxItemSet& 	GetParaAttribs( sal_uInt32 nPara ) const;
 
-	sal_Bool			HasParaAttrib( sal_uInt16 nPara, sal_uInt16 nWhich ) const;
-	const SfxPoolItem&	GetParaAttrib( sal_uInt16 nPara, sal_uInt16 nWhich ) const;
+	sal_Bool			HasParaAttrib( sal_uInt32 nPara, sal_uInt16 nWhich ) const;
+	const SfxPoolItem&	GetParaAttrib( sal_uInt32 nPara, sal_uInt16 nWhich ) const;
 
 	Rectangle		PaMtoEditCursor( EditPaM aPaM, sal_uInt16 nFlags = 0 );
 	Rectangle		GetEditCursor( ParaPortion* pPortion, sal_uInt16 nIndex, sal_uInt16 nFlags = 0 );
@@ -845,9 +845,9 @@ public:
 	sal_Bool 		Repeat( EditView* pView );
 
 //	OV-Special
-	void			InvalidateFromParagraph( sal_uInt16 nFirstInvPara );
-	EditPaM			InsertParagraph( sal_uInt16 nPara );
-	EditSelection*	SelectParagraph( sal_uInt16 nPara );
+	void			InvalidateFromParagraph( sal_uInt32 nFirstInvPara );
+	EditPaM			InsertParagraph( sal_uInt32 nPara );
+	EditSelection*	SelectParagraph( sal_uInt32 nPara );
 
 	void			SetStatusEventHdl( const Link& rLink )	{ aStatusHdlLink = rLink; }
 	Link			GetStatusEventHdl() const   			{ return aStatusHdlLink; }
@@ -862,7 +862,7 @@ public:
     sal_Bool            IsVisualCursorTravelingEnabled();
     sal_Bool            DoVisualCursorTraveling( const ContentNode* pNode );
 
-	EditSelection			ConvertSelection( sal_uInt16 nStartPara, sal_uInt16 nStartPos, sal_uInt16 nEndPara, sal_uInt16 nEndPos ) const;
+	EditSelection			ConvertSelection( sal_uInt32 nStartPara, sal_uInt16 nStartPos, sal_uInt32 nEndPara, sal_uInt16 nEndPos ) const;
 	inline EPaM				CreateEPaM( const EditPaM& rPaM );
 	inline EditPaM			CreateEditPaM( const EPaM& rEPaM );
 	inline ESelection		CreateESel( const EditSelection& rSel );
@@ -873,8 +873,8 @@ public:
 	SfxStyleSheetPool*	GetStyleSheetPool() const { return pStylePool; }
 
 	void				SetStyleSheet( EditSelection aSel, SfxStyleSheet* pStyle );
-	void				SetStyleSheet( sal_uInt16 nPara, SfxStyleSheet* pStyle );
-	SfxStyleSheet*		GetStyleSheet( sal_uInt16 nPara ) const;
+	void				SetStyleSheet( sal_uInt32 nPara, SfxStyleSheet* pStyle );
+	SfxStyleSheet*		GetStyleSheet( sal_uInt32 nPara ) const;
 
 	void				UpdateParagraphsWithStyleSheet( SfxStyleSheet* pStyle );
 	void 				RemoveStyleFromParagraphs( SfxStyleSheet* pStyle );
@@ -985,7 +985,7 @@ public:
     sal_Int32               GetSpaceBeforeAndMinLabelWidth( const ContentNode *pNode, sal_Int32 *pnSpaceBefore = 0, sal_Int32 *pnMinLabelWidth = 0 ) const;
 
 	const SvxLRSpaceItem&	GetLRSpaceItem( ContentNode* pNode );
-    SvxAdjust               GetJustification( sal_uInt16 nPara ) const;
+    SvxAdjust               GetJustification( sal_uInt32 nPara ) const;
 
 	void				SetCharStretching( sal_uInt16 nX, sal_uInt16 nY );
 	inline void			GetCharStretching( sal_uInt16& rX, sal_uInt16& rY );
@@ -1132,7 +1132,7 @@ inline ::svl::IUndoManager* ImpEditEngine::SetUndoManager(::svl::IUndoManager* p
 
 inline ParaPortion*	ImpEditEngine::FindParaPortion( ContentNode* pNode ) const
 {
-	sal_uInt16 nPos = aEditDoc.GetPos( pNode );
+	sal_uInt32 nPos = aEditDoc.GetPos( pNode );
 	DBG_ASSERT( nPos < GetParaPortions().Count(), "Portionloser Node?" );
 	return GetParaPortions()[ nPos ];
 }
diff --git a/main/editeng/source/editeng/impedit2.cxx b/main/editeng/source/editeng/impedit2.cxx
index 69a0a944ac..920649ecff 100644
--- a/main/editeng/source/editeng/impedit2.cxx
+++ b/main/editeng/source/editeng/impedit2.cxx
@@ -251,8 +251,8 @@ void ImpEditEngine::SetRefMapMode( const MapMode& rMapMode )
 
 void ImpEditEngine::InitDoc( sal_Bool bKeepParaAttribs )
 {
-	sal_uInt16 nParas = aEditDoc.Count();
-	for ( sal_uInt16 n = bKeepParaAttribs ? 1 : 0; n < nParas; n++ )
+	sal_uInt32 nParas = aEditDoc.Count();
+	for ( sal_uInt32 n = bKeepParaAttribs ? 1 : 0; n < nParas; n++ )
 	{
 		if ( aEditDoc[n]->GetStyleSheet() )
 			EndListening( *aEditDoc[n]->GetStyleSheet(), sal_False );
@@ -301,13 +301,13 @@ XubString ImpEditEngine::GetSelected( const EditSelection& rSel, const LineEnd e
 
 	ContentNode* pStartNode = aSel.Min().GetNode();
 	ContentNode* pEndNode = aSel.Max().GetNode();
-	sal_uInt16 nStartNode = aEditDoc.GetPos( pStartNode );
-	sal_uInt16 nEndNode = aEditDoc.GetPos( pEndNode );
+	sal_uInt32 nStartNode = aEditDoc.GetPos( pStartNode );
+	sal_uInt32 nEndNode = aEditDoc.GetPos( pEndNode );
 
 	DBG_ASSERT( nStartNode <= nEndNode, "Selektion nicht sortiert ?" );
 
 	// ueber die Absaetze iterieren...
-	for ( sal_uInt16 nNode = nStartNode; nNode <= nEndNode; nNode++	)
+	for ( sal_uInt32 nNode = nStartNode; nNode <= nEndNode; nNode++	)
 	{
 		DBG_ASSERT( aEditDoc.SaveGetObject( nNode ), "Node nicht gefunden: GetSelected" );
 		ContentNode* pNode = aEditDoc.GetObject( nNode );
@@ -689,7 +689,7 @@ sal_Bool ImpEditEngine::MouseButtonUp( const MouseEvent& rMEvt, EditView* pView
 			if ( pFld )
 			{
 				EditPaM aPaM( aCurSel.Max() );
-				sal_uInt16 nPara = GetEditDoc().GetPos( aPaM.GetNode() );
+				sal_uInt32 nPara = GetEditDoc().GetPos( aPaM.GetNode() );
 				GetEditEnginePtr()->FieldClicked( *pFld, nPara, aPaM.GetIndex() );
 			}
 		}
@@ -835,7 +835,7 @@ void ImpEditEngine::ParaAttribsChanged( ContentNode* pNode )
 	DBG_ASSERT( pPortion, "ParaAttribsChanged: Portion?" );
 	pPortion->MarkSelectionInvalid( 0, pNode->Len() );
 
-	sal_uInt16 nPara = aEditDoc.GetPos( pNode );
+	sal_uInt32 nPara = aEditDoc.GetPos( pNode );
 	pEditEngine->ParaAttribsChanged( nPara );
 
 	ParaPortion* pNextPortion = GetParaPortions().SaveGetObject( nPara+1 );
@@ -1031,7 +1031,7 @@ EditPaM ImpEditEngine::CursorVisualStartEnd( EditView* pEditView, const EditPaM&
 {
     EditPaM aPaM( rPaM );
 
-    sal_uInt16 nPara = GetEditDoc().GetPos( aPaM.GetNode() );
+    sal_uInt32 nPara = GetEditDoc().GetPos( aPaM.GetNode() );
     ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
 
     sal_uInt16 nLine = pParaPortion->GetLines().FindLine( aPaM.GetIndex(), sal_False );
@@ -1089,7 +1089,7 @@ EditPaM ImpEditEngine::CursorVisualLeftRight( EditView* pEditView, const EditPaM
 {
     EditPaM aPaM( rPaM );
 
-    sal_uInt16 nPara = GetEditDoc().GetPos( aPaM.GetNode() );
+    sal_uInt32 nPara = GetEditDoc().GetPos( aPaM.GetNode() );
     ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
 
     sal_uInt16 nLine = pParaPortion->GetLines().FindLine( aPaM.GetIndex(), sal_False );
@@ -1534,7 +1534,7 @@ EditPaM ImpEditEngine::WordLeft( const EditPaM& rPaM, sal_Int16 nWordType )
 	if ( nCurrentPos == 0 )
 	{
 		// Vorheriger Absatz...
-		sal_uInt16 nCurPara = aEditDoc.GetPos( aNewPaM.GetNode() );
+		sal_uInt32 nCurPara = aEditDoc.GetPos( aNewPaM.GetNode() );
 		ContentNode* pPrevNode = aEditDoc.SaveGetObject( --nCurPara );
 		if ( pPrevNode )
 		{
@@ -1582,7 +1582,7 @@ EditPaM ImpEditEngine::WordRight( const EditPaM& rPaM, sal_Int16 nWordType )
 	if ( aNewPaM.GetIndex() >= nMax )
 	{
 		// Naechster Absatz...
-		sal_uInt16 nCurPara = aEditDoc.GetPos( aNewPaM.GetNode() );
+		sal_uInt32 nCurPara = aEditDoc.GetPos( aNewPaM.GetNode() );
 		ContentNode* pNextNode = aEditDoc.SaveGetObject( ++nCurPara );
 		if ( pNextNode )
 		{
@@ -1717,7 +1717,7 @@ sal_Bool ImpEditEngine::IsInputSequenceCheckingRequired( sal_Unicode nChar, cons
 
 
 
-void ImpEditEngine::InitScriptTypes( sal_uInt16 nPara )
+void ImpEditEngine::InitScriptTypes( sal_uInt32 nPara )
 {
 	ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
 	ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
@@ -1872,7 +1872,7 @@ sal_uInt16 ImpEditEngine::GetScriptType( const EditPaM& rPaM, sal_uInt16* pEndPo
 
 	if ( rPaM.GetNode()->Len() )
 	{
- 		sal_uInt16 nPara = GetEditDoc().GetPos( rPaM.GetNode() );
+ 		sal_uInt32 nPara = GetEditDoc().GetPos( rPaM.GetNode() );
 		ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
 		if ( pParaPortion->aScriptInfos.empty() )
 			((ImpEditEngine*)this)->InitScriptTypes( nPara );
@@ -1900,10 +1900,10 @@ sal_uInt16 ImpEditEngine::GetScriptType( const EditSelection& rSel ) const
 
 	short nScriptType = 0;
 
- 	sal_uInt16 nStartPara = GetEditDoc().GetPos( aSel.Min().GetNode() );
- 	sal_uInt16 nEndPara = GetEditDoc().GetPos( aSel.Max().GetNode() );
+ 	sal_uInt32 nStartPara = GetEditDoc().GetPos( aSel.Min().GetNode() );
+ 	sal_uInt32 nEndPara = GetEditDoc().GetPos( aSel.Max().GetNode() );
 
-	for ( sal_uInt16 nPara = nStartPara; nPara <= nEndPara; nPara++ )
+	for ( sal_uInt32 nPara = nStartPara; nPara <= nEndPara; nPara++ )
 	{
 		ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
 		if ( pParaPortion->aScriptInfos.empty() )
@@ -1945,7 +1945,7 @@ sal_Bool ImpEditEngine::IsScriptChange( const EditPaM& rPaM ) const
 
 	if ( rPaM.GetNode()->Len() )
 	{
-		sal_uInt16 nPara = GetEditDoc().GetPos( rPaM.GetNode() );
+		sal_uInt32 nPara = GetEditDoc().GetPos( rPaM.GetNode() );
 		ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
 		if ( pParaPortion->aScriptInfos.empty() )
 			((ImpEditEngine*)this)->InitScriptTypes( nPara );
@@ -1964,7 +1964,7 @@ sal_Bool ImpEditEngine::IsScriptChange( const EditPaM& rPaM ) const
 	return bScriptChange;
 }
 
-sal_Bool ImpEditEngine::HasScriptType( sal_uInt16 nPara, sal_uInt16 nType ) const
+sal_Bool ImpEditEngine::HasScriptType( sal_uInt32 nPara, sal_uInt16 nType ) const
 {
     sal_Bool bTypeFound = sal_False;
 
@@ -1981,7 +1981,7 @@ sal_Bool ImpEditEngine::HasScriptType( sal_uInt16 nPara, sal_uInt16 nType ) cons
     return bTypeFound;
 }
 
-void ImpEditEngine::InitWritingDirections( sal_uInt16 nPara )
+void ImpEditEngine::InitWritingDirections( sal_uInt32 nPara )
 {
 	ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
 	WritingDirectionInfos& rInfos = pParaPortion->aWritingDirectionInfos;
@@ -2036,7 +2036,7 @@ void ImpEditEngine::InitWritingDirections( sal_uInt16 nPara )
 
 }
 
-sal_Bool ImpEditEngine::IsRightToLeft( sal_uInt16 nPara ) const
+sal_Bool ImpEditEngine::IsRightToLeft( sal_uInt32 nPara ) const
 {
     sal_Bool bR2L = sal_False;
     const SvxFrameDirectionItem* pFrameDirItem = NULL;
@@ -2068,7 +2068,7 @@ sal_Bool ImpEditEngine::IsRightToLeft( sal_uInt16 nPara ) const
 
 sal_Bool ImpEditEngine::HasDifferentRTLLevels( const ContentNode* pNode )
 {
-    sal_uInt16 nPara = GetEditDoc().GetPos( (ContentNode*)pNode );
+    sal_uInt32 nPara = GetEditDoc().GetPos( (ContentNode*)pNode );
 	ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
 
     sal_Bool bHasDifferentRTLLevels = sal_False;
@@ -2087,7 +2087,7 @@ sal_Bool ImpEditEngine::HasDifferentRTLLevels( const ContentNode* pNode )
 }
 
 
-sal_uInt8 ImpEditEngine::GetRightToLeft( sal_uInt16 nPara, sal_uInt16 nPos, sal_uInt16* pStart, sal_uInt16* pEnd )
+sal_uInt8 ImpEditEngine::GetRightToLeft( sal_uInt32 nPara, sal_uInt16 nPos, sal_uInt16* pStart, sal_uInt16* pEnd )
 {
 //    sal_uInt8 nRightToLeft = IsRightToLeft( nPara ) ? 1 : 0;
     sal_uInt8 nRightToLeft = 0;
@@ -2117,7 +2117,7 @@ sal_uInt8 ImpEditEngine::GetRightToLeft( sal_uInt16 nPara, sal_uInt16 nPos, sal_
     return nRightToLeft;
 }
 
-SvxAdjust ImpEditEngine::GetJustification( sal_uInt16 nPara ) const
+SvxAdjust ImpEditEngine::GetJustification( sal_uInt32 nPara ) const
 {
 	SvxAdjust eJustification = SVX_ADJUST_LEFT;
 
@@ -2178,7 +2178,7 @@ void ImpEditEngine::ImpRemoveChars( const EditPaM& rPaM, sal_uInt16 nChars, Edit
 	TextModified();
 }
 
-EditSelection ImpEditEngine::ImpMoveParagraphs( Range aOldPositions, sal_uInt16 nNewPos )
+EditSelection ImpEditEngine::ImpMoveParagraphs( Range aOldPositions, sal_uInt32 nNewPos )
 {
 	aOldPositions.Justify();
 	sal_Bool bValidAction = ( (long)nNewPos < aOldPositions.Min() ) || ( (long)nNewPos > aOldPositions.Max() );
@@ -2193,7 +2193,7 @@ EditSelection ImpEditEngine::ImpMoveParagraphs( Range aOldPositions, sal_uInt16
 		return aSelection;
 	}
 
-	sal_uLong nParaCount = GetParaPortions().Count();
+	sal_uInt32 nParaCount = GetParaPortions().Count();
 
 	if ( nNewPos >= nParaCount )
 		nNewPos = GetParaPortions().Count();
@@ -2207,28 +2207,26 @@ EditSelection ImpEditEngine::ImpMoveParagraphs( Range aOldPositions, sal_uInt16
 	if ( nNewPos == 0 )	// Move to Start
 	{
 		pRecalc1 = GetParaPortions().GetObject( 0 );
-		pRecalc2 = GetParaPortions().GetObject( (sal_uInt16)aOldPositions.Min() );
-
+		pRecalc2 = GetParaPortions().GetObject( (sal_uInt32)aOldPositions.Min() );
 	}
 	else if ( nNewPos == nParaCount )
 	{
-		pRecalc1 = GetParaPortions().GetObject( (sal_uInt16)(nParaCount-1) );
-		pRecalc2 = GetParaPortions().GetObject( (sal_uInt16)aOldPositions.Max() );
+		pRecalc1 = GetParaPortions().GetObject( (sal_uInt32)(nParaCount-1) );
+		pRecalc2 = GetParaPortions().GetObject( (sal_uInt32)aOldPositions.Max() );
 	}
 
 	if ( aOldPositions.Min() == 0 )	// Move from Start
 	{
 		pRecalc3 = GetParaPortions().GetObject( 0 );
-		pRecalc4 = GetParaPortions().GetObject(
-            sal::static_int_cast< sal_uInt16 >( aOldPositions.Max()+1 ) );
+		pRecalc4 = GetParaPortions().GetObject( (sal_uInt32)(aOldPositions.Max()+1) );
 	}
-	else if ( (sal_uInt16)aOldPositions.Max() == (nParaCount-1) )
+	else if ( aOldPositions.Max() == (nParaCount-1) )
 	{
-		pRecalc3 = GetParaPortions().GetObject( (sal_uInt16)aOldPositions.Max() );
-		pRecalc4 = GetParaPortions().GetObject( (sal_uInt16)(aOldPositions.Min()-1) );
+		pRecalc3 = GetParaPortions().GetObject( (sal_uInt32)aOldPositions.Max() );
+		pRecalc4 = GetParaPortions().GetObject( (sal_uInt32)(aOldPositions.Min()-1) );
 	}
 
-	MoveParagraphsInfo aMoveParagraphsInfo( sal::static_int_cast< sal_uInt16 >(aOldPositions.Min()), sal::static_int_cast< sal_uInt16 >(aOldPositions.Max()), nNewPos );
+	MoveParagraphsInfo aMoveParagraphsInfo( sal::static_int_cast< sal_uInt32 >(aOldPositions.Min()), sal::static_int_cast< sal_uInt32 >(aOldPositions.Max()), nNewPos );
 	aBeginMovingParagraphsHdl.Call( &aMoveParagraphsInfo );
 
 	if ( IsUndoEnabled() && !IsInUndo())
@@ -2238,20 +2236,20 @@ EditSelection ImpEditEngine::ImpMoveParagraphs( Range aOldPositions, sal_uInt16
 	ParaPortion* pDestPortion = GetParaPortions().SaveGetObject( nNewPos );
 
 	ParaPortionList aTmpPortionList;
-	sal_uInt16 i;
-	for ( i = (sal_uInt16)aOldPositions.Min(); i <= (sal_uInt16)aOldPositions.Max(); i++  )
+	sal_uInt32 i;
+	for ( i = (sal_uInt32)aOldPositions.Min(); i <= (sal_uInt32)aOldPositions.Max(); i++  )
 	{
 		// Immer aOldPositions.Min(), da Remove().
-		ParaPortion* pTmpPortion = GetParaPortions().GetObject( (sal_uInt16)aOldPositions.Min() );
-		GetParaPortions().Remove( (sal_uInt16)aOldPositions.Min() );
-		aEditDoc.Remove( (sal_uInt16)aOldPositions.Min() );
+		ParaPortion* pTmpPortion = GetParaPortions().GetObject( (sal_uInt32)aOldPositions.Min() );
+		GetParaPortions().Remove( (sal_uInt32)aOldPositions.Min() );
+		aEditDoc.Remove( (sal_uInt32)aOldPositions.Min() );
 		aTmpPortionList.Insert( pTmpPortion, aTmpPortionList.Count() );
 	}
 
-	sal_uInt16 nRealNewPos = pDestPortion ? GetParaPortions().GetPos( pDestPortion ) : GetParaPortions().Count();
+	sal_uInt32 nRealNewPos = pDestPortion ? GetParaPortions().GetPos( pDestPortion ) : GetParaPortions().Count();
 	DBG_ASSERT( nRealNewPos != USHRT_MAX, "ImpMoveParagraphs: Ungueltige Position!" );
 
-	for ( i = 0; i < (sal_uInt16)aTmpPortionList.Count(); i++  )
+	for ( i = 0; i < aTmpPortionList.Count(); i++  )
 	{
 		ParaPortion* pTmpPortion = aTmpPortionList.GetObject( i );
 		if ( i == 0 )
@@ -2273,8 +2271,8 @@ EditSelection ImpEditEngine::ImpMoveParagraphs( Range aOldPositions, sal_uInt16
         EENotify aNotify( EE_NOTIFY_PARAGRAPHSMOVED );
         aNotify.pEditEngine = GetEditEnginePtr();
         aNotify.nParagraph = nNewPos;
-        aNotify.nParam1 = sal::static_int_cast< sal_uInt16 >(aOldPositions.Min());
-        aNotify.nParam2 = sal::static_int_cast< sal_uInt16 >(aOldPositions.Max());
+        aNotify.nParam1 = sal::static_int_cast< sal_uInt32 >(aOldPositions.Min());
+        aNotify.nParam2 = sal::static_int_cast< sal_uInt32 >(aOldPositions.Max());
         CallNotify( aNotify );
     }
 
@@ -2314,7 +2312,7 @@ EditPaM ImpEditEngine::ImpConnectParagraphs( ContentNode* pLeft, ContentNode* pR
         std::swap(pLeft, pRight);
     }
 
-	sal_uInt16 nParagraphTobeDeleted = aEditDoc.GetPos( pRight );
+	sal_uInt32 nParagraphTobeDeleted = aEditDoc.GetPos( pRight );
 	DeletedNodeInfo* pInf = new DeletedNodeInfo( (sal_uLong)pRight, nParagraphTobeDeleted );
 	aDeletedNodes.Insert( pInf, aDeletedNodes.Count() );
 
@@ -2384,7 +2382,7 @@ EditPaM ImpEditEngine::ImpConnectParagraphs( ContentNode* pLeft, ContentNode* pR
 		// Durch das zusammenfuegen wird der linke zwar neu formatiert, aber
 		// wenn sich dessen Hoehe nicht aendert bekommt die Formatierung die
 		// Aenderung der Gesaamthoehe des Textes zu spaet mit...
-		for ( sal_uInt16 n = nParagraphTobeDeleted; n < GetParaPortions().Count(); n++ )
+		for ( sal_uInt32 n = nParagraphTobeDeleted; n < GetParaPortions().Count(); n++ )
 		{
 			ParaPortion* pPP = GetParaPortions().GetObject( n );
 			pPP->MarkSelectionInvalid( 0, pPP->GetNode()->Len() );
@@ -2513,8 +2511,8 @@ EditPaM ImpEditEngine::ImpDeleteSelection( EditSelection aSel )
 	DBG_ASSERT( aStartPaM.GetIndex() <= aStartPaM.GetNode()->Len(), "Index im Wald in ImpDeleteSelection" );
 	DBG_ASSERT( aEndPaM.GetIndex() <= aEndPaM.GetNode()->Len(), "Index im Wald in ImpDeleteSelection" );
 
-	sal_uInt16 nStartNode = aEditDoc.GetPos( aStartPaM.GetNode() );
-	sal_uInt16 nEndNode = aEditDoc.GetPos( aEndPaM.GetNode() );
+	sal_uInt32 nStartNode = aEditDoc.GetPos( aStartPaM.GetNode() );
+	sal_uInt32 nEndNode = aEditDoc.GetPos( aEndPaM.GetNode() );
 
 	DBG_ASSERT( nEndNode != USHRT_MAX, "Start > End ?!" );
 	DBG_ASSERT( nStartNode <= nEndNode, "Start > End ?!" );
@@ -2561,7 +2559,7 @@ EditPaM ImpEditEngine::ImpDeleteSelection( EditSelection aSel )
 	return aStartPaM;
 }
 
-void ImpEditEngine::ImpRemoveParagraph( sal_uInt16 nPara )
+void ImpEditEngine::ImpRemoveParagraph( sal_uInt32 nPara )
 {
 	ContentNode* pNode = aEditDoc.SaveGetObject( nPara );
 	ContentNode* pNextNode = aEditDoc.SaveGetObject( nPara+1 );
@@ -2936,9 +2934,9 @@ EditPaM ImpEditEngine::ImpInsertParaBreak( const EditSelection& rCurSel, sal_Boo
 
 EditPaM ImpEditEngine::ImpInsertParaBreak( const EditPaM& rPaM, sal_Bool bKeepEndingAttribs )
 {
-	if ( aEditDoc.Count() >= 0xFFFE )
+	if ( aEditDoc.Count() >= (EE_PARA_MAX - 1) )
 	{
-		DBG_ERROR( "Can't process more than 64K paragraphs!" );
+		DBG_ERROR( "Can't process more than (2^32 - 1) paragraphs!" );
 		return rPaM;
 	}
 
@@ -2989,7 +2987,7 @@ EditPaM ImpEditEngine::ImpInsertParaBreak( const EditPaM& rPaM, sal_Bool bKeepEn
 
 	// Optimieren: Nicht unnoetig viele GetPos auf die Listen ansetzen!
 	// Hier z.B. bei Undo, aber auch in allen anderen Methoden.
-	sal_uInt16 nPos = GetParaPortions().GetPos( pPortion );
+	sal_uInt32 nPos = GetParaPortions().GetPos( pPortion );
 	ParaPortion* pNewPortion = new ParaPortion( aPaM.GetNode() );
 	GetParaPortions().Insert( pNewPortion, nPos + 1 );
 	ParaAttribsChanged( pNewPortion->GetNode() );
@@ -3001,7 +2999,7 @@ EditPaM ImpEditEngine::ImpInsertParaBreak( const EditPaM& rPaM, sal_Bool bKeepEn
 	return aPaM;
 }
 
-EditPaM ImpEditEngine::ImpFastInsertParagraph( sal_uInt16 nPara )
+EditPaM ImpEditEngine::ImpFastInsertParagraph( sal_uInt32 nPara )
 {
 #ifndef SVX_LIGHT
 	if ( IsUndoEnabled() && !IsInUndo() )
@@ -3040,7 +3038,7 @@ EditPaM ImpEditEngine::InsertParaBreak( EditSelection aCurSel )
 	EditPaM aPaM( ImpInsertParaBreak( aCurSel ) );
 	if ( aStatus.DoAutoIndenting() )
 	{
-		sal_uInt16 nPara = aEditDoc.GetPos( aPaM.GetNode() );
+		sal_uInt32 nPara = aEditDoc.GetPos( aPaM.GetNode() );
 		DBG_ASSERT( nPara > 0, "AutoIndenting: Fehler!" );
 		XubString aPrevParaText( GetEditDoc().GetParaAsString( nPara-1 ) );
 		sal_uInt16 n = 0;
@@ -3073,8 +3071,8 @@ EditPaM ImpEditEngine::InsertField( EditSelection aCurSel, const SvxFieldItem& r
 sal_Bool ImpEditEngine::UpdateFields()
 {
 	sal_Bool bChanges = sal_False;
-	sal_uInt16 nParas = GetEditDoc().Count();
-	for ( sal_uInt16 nPara = 0; nPara < nParas; nPara++ )
+	sal_uInt32 nParas = GetEditDoc().Count();
+	for ( sal_uInt32 nPara = 0; nPara < nParas; nPara++ )
 	{
 		sal_Bool bChangesInPara = sal_False;
 		ContentNode* pNode = GetEditDoc().GetObject( nPara );
@@ -3132,7 +3130,7 @@ Rectangle ImpEditEngine::PaMtoEditCursor( EditPaM aPaM, sal_uInt16 nFlags )
 
 	Rectangle aEditCursor;
 	long nY = 0;
-	for ( sal_uInt16 nPortion = 0; nPortion < GetParaPortions().Count(); nPortion++ )
+	for ( sal_uInt32 nPortion = 0; nPortion < GetParaPortions().Count(); nPortion++ )
 	{
 		ParaPortion* pPortion = GetParaPortions().GetObject(nPortion);
 		ContentNode* pNode = pPortion->GetNode();
@@ -3160,7 +3158,7 @@ EditPaM ImpEditEngine::GetPaM( Point aDocPos, sal_Bool bSmart )
 	long nY = 0;
 	long nTmpHeight;
 	EditPaM aPaM;
-	sal_uInt16 nPortion;
+	sal_uInt32 nPortion;
 	for ( nPortion = 0; nPortion < GetParaPortions().Count(); nPortion++ )
 	{
 		ParaPortion* pPortion = GetParaPortions().GetObject(nPortion);
@@ -3215,10 +3213,10 @@ sal_uInt32 ImpEditEngine::CalcTextWidth( sal_Bool bIgnoreExtraSpace )
 	// --------------------------------------------------
 	// Ueber alle Absaetze...
 	// --------------------------------------------------
-	sal_uInt16 nParas = GetParaPortions().Count();
+	sal_uInt32 nParas = GetParaPortions().Count();
 //	sal_uInt16 nBiggestPara = 0;
 //	sal_uInt16 nBiggestLine = 0;
-	for ( sal_uInt16 nPara = 0; nPara < nParas; nPara++ )
+	for ( sal_uInt32 nPara = 0; nPara < nParas; nPara++ )
 	{
 		ParaPortion* pPortion = GetParaPortions().GetObject( nPara );
 		if ( pPortion->IsVisible() )
@@ -3269,7 +3267,7 @@ sal_uInt32 ImpEditEngine::CalcTextWidth( sal_Bool bIgnoreExtraSpace )
 
 sal_uInt32 ImpEditEngine::CalcLineWidth( ParaPortion* pPortion, EditLine* pLine, sal_Bool bIgnoreExtraSpace )
 {
-	sal_uInt16 nPara = GetEditDoc().GetPos( pPortion->GetNode() );
+	sal_uInt32 nPara = GetEditDoc().GetPos( pPortion->GetNode() );
 
     // #114278# Saving both layout mode and language (since I'm
     // potentially changing both)
@@ -3323,12 +3321,12 @@ sal_uInt32 ImpEditEngine::CalcTextHeight()
 {
 	DBG_ASSERT( GetUpdateMode(), "Sollte bei Update=sal_False nicht verwendet werden: CalcTextHeight" );
 	sal_uInt32 nY = 0;
-	for ( sal_uInt16 nPortion = 0; nPortion < GetParaPortions().Count(); nPortion++ )
+	for ( sal_uInt32 nPortion = 0; nPortion < GetParaPortions().Count(); nPortion++ )
 		nY += GetParaPortions()[nPortion]->GetHeight();
 	return nY;
 }
 
-sal_uInt16 ImpEditEngine::GetLineCount( sal_uInt16 nParagraph ) const
+sal_uInt16 ImpEditEngine::GetLineCount( sal_uInt32 nParagraph ) const
 {
 	DBG_ASSERT( nParagraph < GetParaPortions().Count(), "GetLineCount: Out of range" );
 	ParaPortion* pPPortion = GetParaPortions().SaveGetObject( nParagraph );
@@ -3339,7 +3337,7 @@ sal_uInt16 ImpEditEngine::GetLineCount( sal_uInt16 nParagraph ) const
 	return 0xFFFF;
 }
 
-xub_StrLen ImpEditEngine::GetLineLen( sal_uInt16 nParagraph, sal_uInt16 nLine ) const
+xub_StrLen ImpEditEngine::GetLineLen( sal_uInt32 nParagraph, sal_uInt16 nLine ) const
 {
     DBG_ASSERT( nParagraph < GetParaPortions().Count(), "GetLineLen: Out of range" );
 	ParaPortion* pPPortion = GetParaPortions().SaveGetObject( nParagraph );
@@ -3354,7 +3352,7 @@ xub_StrLen ImpEditEngine::GetLineLen( sal_uInt16 nParagraph, sal_uInt16 nLine )
 	return 0xFFFF;
 }
 
-void ImpEditEngine::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const
+void ImpEditEngine::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nParagraph, sal_uInt16 nLine ) const
 {
     DBG_ASSERT( nParagraph < GetParaPortions().Count(), "GetLineCount: Out of range" );
     ParaPortion* pPPortion = GetParaPortions().SaveGetObject( nParagraph );
@@ -3369,7 +3367,7 @@ void ImpEditEngine::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uIn
     }
 }    
 
-sal_uInt16 ImpEditEngine::GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+sal_uInt16 ImpEditEngine::GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
     sal_uInt16 nLineNo = 0xFFFF;
     ContentNode* pNode = GetEditDoc().SaveGetObject( nPara );
@@ -3396,7 +3394,7 @@ sal_uInt16 ImpEditEngine::GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIn
     return nLineNo;
 }
     
-sal_uInt16 ImpEditEngine::GetLineHeight( sal_uInt16 nParagraph, sal_uInt16 nLine )
+sal_uInt16 ImpEditEngine::GetLineHeight( sal_uInt32 nParagraph, sal_uInt16 nLine )
 {
 	DBG_ASSERT( nParagraph < GetParaPortions().Count(), "GetLineCount: Out of range" );
 	ParaPortion* pPPortion = GetParaPortions().SaveGetObject( nParagraph );
@@ -3411,7 +3409,7 @@ sal_uInt16 ImpEditEngine::GetLineHeight( sal_uInt16 nParagraph, sal_uInt16 nLine
 	return 0xFFFF;
 }
 
-sal_uInt32 ImpEditEngine::GetParaHeight( sal_uInt16 nParagraph )
+sal_uInt32 ImpEditEngine::GetParaHeight( sal_uInt32 nParagraph )
 {
 	sal_uInt32 nHeight = 0;
 
@@ -3444,7 +3442,7 @@ void ImpEditEngine::UpdateSelections()
 			{
 				// ParaPortions verwenden, da jetzt auch versteckte
 				// Absaetze beruecksichtigt werden muessen!
-				sal_uInt16 nPara = pInf->GetPosition();
+				sal_uInt32 nPara = pInf->GetPosition();
 				ParaPortion* pPPortion = GetParaPortions().SaveGetObject( nPara );
 				if ( !pPPortion ) // letzter Absatz
 				{
@@ -3453,8 +3451,8 @@ void ImpEditEngine::UpdateSelections()
 				}
 				DBG_ASSERT( pPPortion, "Leeres Document in UpdateSelections ?" );
 				// Nicht aus einem verstecktem Absatz landen:
-				sal_uInt16 nCurPara = nPara;
-				sal_uInt16 nLastPara = GetParaPortions().Count()-1;
+				sal_uInt32 nCurPara = nPara;
+				sal_uInt32 nLastPara = GetParaPortions().Count()-1;
 				while ( nPara <= nLastPara && !GetParaPortions()[nPara]->IsVisible() )
 					nPara++;
 				if ( nPara > nLastPara ) // dann eben rueckwaerts...
@@ -3497,8 +3495,8 @@ void ImpEditEngine::UpdateSelections()
 	aDeletedNodes.Remove( 0, aDeletedNodes.Count() );
 }
 
-EditSelection ImpEditEngine::ConvertSelection( sal_uInt16 nStartPara, sal_uInt16 nStartPos,
-							 sal_uInt16 nEndPara, sal_uInt16 nEndPos ) const
+EditSelection ImpEditEngine::ConvertSelection( sal_uInt32 nStartPara, sal_uInt16 nStartPos,
+							 sal_uInt32 nEndPara, sal_uInt16 nEndPos ) const
 {
 	EditSelection aNewSelection;
 
@@ -3552,7 +3550,7 @@ EditSelection ImpEditEngine::MatchGroup( const EditSelection& rSel )
 	sal_uInt16 nMatchChar = aGroupChars.Search( pNode->GetChar( nPos ) );
 	if ( nMatchChar != STRING_NOTFOUND )
 	{
-		sal_uInt16 nNode = aEditDoc.GetPos( pNode );
+		sal_uInt32 nNode = aEditDoc.GetPos( pNode );
 		if ( ( nMatchChar % 2 ) == 0 )
 		{
 			// Vorwaerts suchen...
@@ -4070,7 +4068,7 @@ Range ImpEditEngine::GetLineXPosStartEnd( ParaPortion* pParaPortion, EditLine* p
 {
     Range aLineXPosStartEnd;
 
-    sal_uInt16 nPara = GetEditDoc().GetPos( pParaPortion->GetNode() );
+    sal_uInt32 nPara = GetEditDoc().GetPos( pParaPortion->GetNode() );
     if ( !IsRightToLeft( nPara ) )
     {
         aLineXPosStartEnd.Min() = pLine->GetStartPosX();
@@ -4107,7 +4105,7 @@ long ImpEditEngine::GetPortionXOffset( ParaPortion* pParaPortion, EditLine* pLin
 		}
     }
 
-    sal_uInt16 nPara = GetEditDoc().GetPos( pParaPortion->GetNode() );
+    sal_uInt32 nPara = GetEditDoc().GetPos( pParaPortion->GetNode() );
     sal_Bool bR2LPara = IsRightToLeft( nPara );
 
     TextPortion* pDestPortion = pParaPortion->GetTextPortions().GetObject( nTextPortion );
@@ -4333,7 +4331,7 @@ void ImpEditEngine::CalcHeight( ParaPortion* pPortion )
 					pPortion->nHeight += nSBL;
 			}
 
-			sal_uInt16 nPortion = GetParaPortions().GetPos( pPortion );
+			sal_uInt32 nPortion = GetParaPortions().GetPos( pPortion );
 			if ( nPortion || aStatus.ULSpaceFirstParagraph() )
 			{
 				sal_uInt16 nUpper = GetYValue( rULItem.GetUpper() );
@@ -4521,7 +4519,7 @@ void ImpEditEngine::IndentBlock( EditView* pEditView, sal_Bool bRight )
 	{
 		ESelection aNewSel = aESel;
 		aNewSel.nStartPos = 0;
-		aNewSel.nEndPos = 0xFFFF;
+		aNewSel.nEndPos = EE_INDEX_MAX;
 
 		if ( aESel.nEndPos == 0 )
 		{
@@ -4534,7 +4532,7 @@ void ImpEditEngine::IndentBlock( EditView* pEditView, sal_Bool bRight )
 						pEditView->pImpEditView->GetEditSelection().Max() );
 		UndoActionStart( bRight ? EDITUNDO_INDENTBLOCK : EDITUNDO_UNINDENTBLOCK );
 
-		for ( sal_uInt16 nPara = aESel.nStartPara; nPara <= aESel.nEndPara; nPara++ )
+		for ( sal_uInt32 nPara = aESel.nStartPara; nPara <= aESel.nEndPara; nPara++ )
 		{
 			ContentNode* pNode = GetEditDoc().GetObject( nPara );
 			if ( bRight )
diff --git a/main/editeng/source/editeng/impedit3.cxx b/main/editeng/source/editeng/impedit3.cxx
index 5750326cc6..acb21a024f 100644
--- a/main/editeng/source/editeng/impedit3.cxx
+++ b/main/editeng/source/editeng/impedit3.cxx
@@ -361,7 +361,7 @@ void ImpEditEngine::CheckIdleFormatter()
 
 void ImpEditEngine::FormatFullDoc()
 {
-	for ( sal_uInt16 nPortion = 0; nPortion < GetParaPortions().Count(); nPortion++ )
+	for ( sal_uInt32 nPortion = 0; nPortion < GetParaPortions().Count(); nPortion++ )
 		GetParaPortions()[nPortion]->MarkSelectionInvalid( 0, GetParaPortions()[nPortion]->GetNode()->Len() );
 	FormatDoc();
 }
@@ -388,7 +388,7 @@ void ImpEditEngine::FormatDoc()
 	sal_Bool bMapChanged = ImpCheckRefMapMode();
 
 	aInvalidRec = Rectangle();	// leermachen
-	for ( sal_uInt16 nPara = 0; nPara < GetParaPortions().Count(); nPara++ )
+	for ( sal_uInt32 nPara = 0; nPara < GetParaPortions().Count(); nPara++ )
 	{
 		ParaPortion* pParaPortion = GetParaPortions().GetObject( nPara );
 		if ( pParaPortion->MustRepaint() || ( pParaPortion->IsInvalid() && pParaPortion->IsVisible() ) )
@@ -413,7 +413,7 @@ void ImpEditEngine::FormatDoc()
 				{
 					// Bei einer Aenderung der Hoehe muss alles weiter unten
 					// neu formatiert werden...
-					for ( sal_uInt16 n = nPara+1; n < GetParaPortions().Count(); n++ )
+					for ( sal_uInt32 n = nPara+1; n < GetParaPortions().Count(); n++ )
 					{
 						ParaPortion* pPP = GetParaPortions().GetObject( n );
 						pPP->MarkSelectionInvalid( 0, pPP->GetNode()->Len() );
@@ -546,7 +546,7 @@ void ImpEditEngine::CheckAutoPageSize()
 		{
 			// Falls davor zentriert/rechts oder Tabs...
 			aStatus.GetStatusWord() |= !IsVertical() ? EE_STAT_TEXTWIDTHCHANGED : EE_STAT_TEXTHEIGHTCHANGED;
-			for ( sal_uInt16 nPara = 0; nPara < GetParaPortions().Count(); nPara++ )
+			for ( sal_uInt32 nPara = 0; nPara < GetParaPortions().Count(); nPara++ )
 			{
 				// Es brauchen nur Absaetze neu formatiert werden,
 				// die nicht linksbuendig sind.
@@ -590,7 +590,7 @@ static sal_Int32 ImplCalculateFontIndependentLineSpacing( const sal_Int32 nFontH
 	return ( nFontHeight * 12 ) / 10;	// + 20%
 }
 
-sal_Bool ImpEditEngine::CreateLines( sal_uInt16 nPara, sal_uInt32 nStartPosY )
+sal_Bool ImpEditEngine::CreateLines( sal_uInt32 nPara, sal_uInt32 nStartPosY )
 {
 	ParaPortion* pParaPortion = GetParaPortions().GetObject( nPara );
 
@@ -1648,7 +1648,7 @@ void ImpEditEngine::CreateAndInsertEmptyLine( ParaPortion* pParaPortion, sal_uIn
 
 	if ( !aStatus.IsOutliner() )
 	{
-        sal_uInt16 nPara = GetParaPortions().GetPos( pParaPortion );
+        sal_uInt32 nPara = GetParaPortions().GetPos( pParaPortion );
 		SvxAdjust eJustification = GetJustification( nPara );
 		long nMaxLineWidth = !IsVertical() ? aPaperSize.Width() : aPaperSize.Height();
 		nMaxLineWidth -= GetXValue( rLRItem.GetRight() );
@@ -1681,7 +1681,7 @@ void ImpEditEngine::CreateAndInsertEmptyLine( ParaPortion* pParaPortion, sal_uIn
 		}
 		else if ( rLSItem.GetInterLineSpaceRule() == SVX_INTER_LINE_SPACE_PROP )
 		{
-            sal_uInt16 nPara = GetParaPortions().GetPos( pParaPortion );
+            sal_uInt32 nPara = GetParaPortions().GetPos( pParaPortion );
 			if ( nPara || IsFixedCellHeight() || pTmpLine->GetStartPortion() ) // Nicht die aller erste Zeile
 			{
                 // #100508# There are documents with PropLineSpace 0, why?
@@ -1748,7 +1748,7 @@ sal_Bool ImpEditEngine::FinishCreateLines( ParaPortion* pParaPortion )
 //	CalcCharPositions( pParaPortion );
 	pParaPortion->SetValid();
 	long nOldHeight = pParaPortion->GetHeight();
-//	sal_uInt16 nPos = GetParaPortions().GetPos( pParaPortion );
+//	sal_uInt32 nPos = GetParaPortions().GetPos( pParaPortion );
 //	DBG_ASSERT( nPos != USHRT_MAX, "FinishCreateLines: Portion nicht in Liste!" );
 //	ParaPortion* pPrev = nPos ? GetParaPortions().GetObject( nPos-1 ) : 0;
 	CalcHeight( pParaPortion );
@@ -2515,7 +2515,7 @@ void ImpEditEngine::SetTextRanger( TextRanger* pRanger )
 		delete pTextRanger;
 		pTextRanger = pRanger;
 
-		for ( sal_uInt16 nPara = 0; nPara < GetParaPortions().Count(); nPara++ )
+		for ( sal_uInt32 nPara = 0; nPara < GetParaPortions().Count(); nPara++ )
 		{
 			ParaPortion* pParaPortion = GetParaPortions().GetObject( nPara );
 			pParaPortion->MarkSelectionInvalid( 0, pParaPortion->GetNode()->Len() );
@@ -2900,7 +2900,7 @@ void ImpEditEngine::Paint( OutputDevice* pOutDev, Rectangle aClipRec, Point aSta
 	// --------------------------------------------------
 	// Ueber alle Absaetze...
 	// --------------------------------------------------
-	for ( sal_uInt16 n = 0; n < GetParaPortions().Count(); n++ )
+	for ( sal_uInt32 n = 0; n < GetParaPortions().Count(); n++ )
 	{
 		ParaPortion* pPortion = GetParaPortions().GetObject( n );
 		DBG_ASSERT( pPortion, "NULL-Pointer in TokenList in Paint" );
@@ -3897,7 +3897,7 @@ void ImpEditEngine::Paint( ImpEditView* pView, const Rectangle& rRec, OutputDevi
 
 }
 
-void ImpEditEngine::InsertContent( ContentNode* pNode, sal_uInt16 nPos )
+void ImpEditEngine::InsertContent( ContentNode* pNode, sal_uInt32 nPos )
 {
 	DBG_ASSERT( pNode, "NULL-Poointer in InsertContent! " );
 	DBG_ASSERT( IsInUndo(), "InsertContent nur fuer Undo()!" );
@@ -3908,7 +3908,7 @@ void ImpEditEngine::InsertContent( ContentNode* pNode, sal_uInt16 nPos )
 		GetEditEnginePtr()->ParagraphInserted( nPos );
 }
 
-EditPaM ImpEditEngine::SplitContent( sal_uInt16 nNode, sal_uInt16 nSepPos )
+EditPaM ImpEditEngine::SplitContent( sal_uInt32 nNode, sal_uInt16 nSepPos )
 {
 	ContentNode* pNode = aEditDoc.SaveGetObject( nNode );
 	DBG_ASSERT( pNode, "Ungueltiger Node in SplitContent" );
@@ -3918,7 +3918,7 @@ EditPaM ImpEditEngine::SplitContent( sal_uInt16 nNode, sal_uInt16 nSepPos )
 	return ImpInsertParaBreak( aPaM );
 }
 
-EditPaM ImpEditEngine::ConnectContents( sal_uInt16 nLeftNode, sal_Bool bBackward )
+EditPaM ImpEditEngine::ConnectContents( sal_uInt32 nLeftNode, sal_Bool bBackward )
 {
 	ContentNode* pLeftNode = aEditDoc.SaveGetObject( nLeftNode );
 	ContentNode* pRightNode = aEditDoc.SaveGetObject( nLeftNode+1 );
@@ -3964,7 +3964,7 @@ void ImpEditEngine::SetUpdateMode( sal_Bool bUp, EditView* pCurView, sal_Bool bF
 		FormatAndUpdate( pCurView );
 }
 
-void ImpEditEngine::ShowParagraph( sal_uInt16 nParagraph, sal_Bool bShow )
+void ImpEditEngine::ShowParagraph( sal_uInt32 nParagraph, sal_Bool bShow )
 {
 	ParaPortion* pPPortion = GetParaPortions().SaveGetObject( nParagraph );
 	DBG_ASSERT( pPPortion, "ShowParagraph: Absatz existiert nicht!" );
@@ -4018,7 +4018,7 @@ void ImpEditEngine::ShowParagraph( sal_uInt16 nParagraph, sal_Bool bShow )
 	}
 }
 
-sal_Bool ImpEditEngine::IsParagraphVisible( sal_uInt16 nParagraph )
+sal_Bool ImpEditEngine::IsParagraphVisible( sal_uInt32 nParagraph )
 {
 	ParaPortion* pPPortion = GetParaPortions().SaveGetObject( nParagraph );
 	DBG_ASSERT( pPPortion, "IsParagraphVisible: Absatz existiert nicht!" );
@@ -4027,7 +4027,7 @@ sal_Bool ImpEditEngine::IsParagraphVisible( sal_uInt16 nParagraph )
 	return sal_False;
 }
 
-EditSelection ImpEditEngine::MoveParagraphs( Range aOldPositions, sal_uInt16 nNewPos, EditView* pCurView )
+EditSelection ImpEditEngine::MoveParagraphs( Range aOldPositions, sal_uInt32 nNewPos, EditView* pCurView )
 {
 	DBG_ASSERT( GetParaPortions().Count() != 0, "Keine Absaetze gefunden: MoveParagraphs" );
 	if ( GetParaPortions().Count() == 0 )
@@ -4046,8 +4046,8 @@ EditSelection ImpEditEngine::MoveParagraphs( Range aOldPositions, sal_uInt16 nNe
 	{
 		// in diesem Fall kann ich direkt neu malen, ohne die
 		// Portions zu Invalidieren.
-		sal_uInt16 nFirstPortion = Min( (sal_uInt16)aOldPositions.Min(), nNewPos );
-		sal_uInt16 nLastPortion = Max( (sal_uInt16)aOldPositions.Max(), nNewPos );
+		sal_uInt32 nFirstPortion = Min( (sal_uInt32)aOldPositions.Min(), nNewPos );
+		sal_uInt32 nLastPortion = Max( (sal_uInt32)aOldPositions.Max(), nNewPos );
 
 		ParaPortion* pUpperPortion = GetParaPortions().SaveGetObject( nFirstPortion );
 		ParaPortion* pLowerPortion = GetParaPortions().SaveGetObject( nLastPortion );
@@ -4063,13 +4063,13 @@ EditSelection ImpEditEngine::MoveParagraphs( Range aOldPositions, sal_uInt16 nNe
 	else
 	{
 		// aber der oberen ungueltigen Position neu painten...
-		sal_uInt16 nFirstInvPara = Min( (sal_uInt16)aOldPositions.Min(), nNewPos );
+		sal_uInt32 nFirstInvPara = Min( (sal_uInt32)aOldPositions.Min(), nNewPos );
 		InvalidateFromParagraph( nFirstInvPara );
 	}
 	return aSel;
 }
 
-void ImpEditEngine::InvalidateFromParagraph( sal_uInt16 nFirstInvPara )
+void ImpEditEngine::InvalidateFromParagraph( sal_uInt32 nFirstInvPara )
 {
 	// Es werden nicht die folgenden Absaetze invalidiert,
 	// da ResetHeight() => Groessenanderung => alles folgende wird
@@ -4130,7 +4130,7 @@ ContentNode* ImpEditEngine::GetNextVisNode( ContentNode* pCurNode )
 
 ParaPortion* ImpEditEngine::GetPrevVisPortion( ParaPortion* pCurPortion )
 {
-	sal_uInt16 nPara = GetParaPortions().GetPos( pCurPortion );
+	sal_uInt32 nPara = GetParaPortions().GetPos( pCurPortion );
 	DBG_ASSERT( nPara < GetParaPortions().Count() , "Portion nicht gefunden: GetPrevVisPortion" );
 	ParaPortion* pPortion = nPara ? GetParaPortions()[--nPara] : 0;
 	while ( pPortion && !pPortion->IsVisible() )
@@ -4141,7 +4141,7 @@ ParaPortion* ImpEditEngine::GetPrevVisPortion( ParaPortion* pCurPortion )
 
 ParaPortion* ImpEditEngine::GetNextVisPortion( ParaPortion* pCurPortion )
 {
-	sal_uInt16 nPara = GetParaPortions().GetPos( pCurPortion );
+	sal_uInt32 nPara = GetParaPortions().GetPos( pCurPortion );
 	DBG_ASSERT( nPara < GetParaPortions().Count() , "Portion nicht gefunden: GetPrevVisNode" );
 	ParaPortion* pPortion = GetParaPortions().SaveGetObject( ++nPara );
 	while ( pPortion && !pPortion->IsVisible() )
@@ -4150,7 +4150,7 @@ ParaPortion* ImpEditEngine::GetNextVisPortion( ParaPortion* pCurPortion )
 	return pPortion;
 }
 
-EditPaM ImpEditEngine::InsertParagraph( sal_uInt16 nPara )
+EditPaM ImpEditEngine::InsertParagraph( sal_uInt32 nPara )
 {
 	EditPaM aPaM;
 	if ( nPara != 0 )
@@ -4170,7 +4170,7 @@ EditPaM ImpEditEngine::InsertParagraph( sal_uInt16 nPara )
 	return ImpInsertParaBreak( aPaM );
 }
 
-EditSelection* ImpEditEngine::SelectParagraph( sal_uInt16 nPara )
+EditSelection* ImpEditEngine::SelectParagraph( sal_uInt32 nPara )
 {
 	EditSelection* pSel = 0;
 	ContentNode* pNode = GetEditDoc().SaveGetObject( nPara );
@@ -4236,8 +4236,8 @@ void ImpEditEngine::SetCharStretching( sal_uInt16 nX, sal_uInt16 nY )
 void ImpEditEngine::DoStretchChars( sal_uInt16 nX, sal_uInt16 nY )
 {
 	UndoActionStart( EDITUNDO_STRETCH );
-	sal_uInt16 nParas = GetEditDoc().Count();
-	for ( sal_uInt16 nPara = 0; nPara < nParas; nPara++ )
+	sal_uInt32 nParas = GetEditDoc().Count();
+	for ( sal_uInt32 nPara = 0; nPara < nParas; nPara++ )
 	{
 		ContentNode* pNode = GetEditDoc()[nPara];
 		SfxItemSet aTmpSet( pNode->GetContentAttribs().GetItems() );
@@ -4390,9 +4390,9 @@ const SvxNumberFormat* ImpEditEngine::GetNumberFormat( const ContentNode *pNode
     if (pNode)
     {
         // get index of paragraph
-        sal_uInt16 nPara = GetEditDoc().GetPos( const_cast< ContentNode * >(pNode) );
-        DBG_ASSERT( nPara < USHRT_MAX, "node not found in array" );
-        if (nPara < USHRT_MAX)
+        sal_uInt32 nPara = GetEditDoc().GetPos( const_cast< ContentNode * >(pNode) );
+        DBG_ASSERT( nPara < EE_PARA_MAX, "node not found in array" );
+        if (nPara < EE_PARA_MAX)
         {
             // the called function may be overloaded by an OutlinerEditEng object to provide
             // access to the SvxNumberFormat of the Outliner.
@@ -4494,7 +4494,7 @@ void ImpEditEngine::ImplInitDigitMode( OutputDevice* pOutDev, String* pString, x
 	}
 }
 
-void ImpEditEngine::ImplInitLayoutMode( OutputDevice* pOutDev, sal_uInt16 nPara, sal_uInt16 nIndex )
+void ImpEditEngine::ImplInitLayoutMode( OutputDevice* pOutDev, sal_uInt32 nPara, sal_uInt16 nIndex )
 {
     sal_Bool bCTL = sal_False;
     sal_uInt8 bR2L = sal_False;
diff --git a/main/editeng/source/editeng/impedit4.cxx b/main/editeng/source/editeng/impedit4.cxx
index 4e1666d3d9..c19edb1aa7 100644
--- a/main/editeng/source/editeng/impedit4.cxx
+++ b/main/editeng/source/editeng/impedit4.cxx
@@ -259,7 +259,7 @@ void ImpEditEngine::Write( SvStream& rOutput, EETextFormat eFormat, EditSelectio
 
 sal_uInt32 ImpEditEngine::WriteText( SvStream& rOutput, EditSelection aSel )
 {
-	sal_uInt16 nStartNode, nEndNode;
+	sal_uInt32 nStartNode, nEndNode;
 	sal_Bool bRange = aSel.HasRange();
 	if ( bRange )
 	{
@@ -274,7 +274,7 @@ sal_uInt32 ImpEditEngine::WriteText( SvStream& rOutput, EditSelection aSel )
 	}
 
 	// ueber die Absaetze iterieren...
-	for ( sal_uInt16 nNode = nStartNode; nNode <= nEndNode; nNode++  )
+	for ( sal_uInt32 nNode = nStartNode; nNode <= nEndNode; nNode++  )
 	{
 		ContentNode* pNode = aEditDoc.GetObject( nNode );
 		DBG_ASSERT( pNode, "Node nicht gefunden: Search&Replace" );
@@ -295,7 +295,7 @@ sal_uInt32 ImpEditEngine::WriteText( SvStream& rOutput, EditSelection aSel )
 	return rOutput.GetError();
 }
 
-sal_Bool ImpEditEngine::WriteItemListAsRTF( ItemList& rLst, SvStream& rOutput, sal_uInt16 nPara, sal_uInt16 nPos,
+sal_Bool ImpEditEngine::WriteItemListAsRTF( ItemList& rLst, SvStream& rOutput, sal_uInt32 nPara, sal_uInt16 nPos,
 						SvxFontTable& rFontTable, SvxColorList& rColorList )
 {
 	const SfxPoolItem* pAttrItem = rLst.First();
@@ -365,7 +365,7 @@ sal_uInt32 ImpEditEngine::WriteRTF( SvStream& rOutput, EditSelection aSel )
 	if ( !IsFormatted() )
 		FormatDoc();
 
-	sal_uInt16 nStartNode, nEndNode;
+	sal_uInt32 nStartNode, nEndNode;
 	aSel.Adjust( aEditDoc );
 
 	nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() );
@@ -576,7 +576,7 @@ sal_uInt32 ImpEditEngine::WriteRTF( SvStream& rOutput, EditSelection aSel )
 
 	// ueber die Absaetze iterieren...
 	rOutput << '{' << endl;
-	for ( sal_uInt16 nNode = nStartNode; nNode <= nEndNode; nNode++  )
+	for ( sal_uInt32 nNode = nStartNode; nNode <= nEndNode; nNode++  )
 	{
 		ContentNode* pNode = aEditDoc.SaveGetObject( nNode );
 		DBG_ASSERT( pNode, "Node nicht gefunden: Search&Replace" );
@@ -737,7 +737,7 @@ sal_uInt32 ImpEditEngine::WriteRTF( SvStream& rOutput, EditSelection aSel )
 }
 
 
-void ImpEditEngine::WriteItemAsRTF( const SfxPoolItem& rItem, SvStream& rOutput, sal_uInt16 nPara, sal_uInt16 nPos,
+void ImpEditEngine::WriteItemAsRTF( const SfxPoolItem& rItem, SvStream& rOutput, sal_uInt32 nPara, sal_uInt16 nPos,
 							SvxFontTable& rFontTable, SvxColorList& rColorList )
 {
 	sal_uInt16 nWhich = rItem.Which();
@@ -1056,7 +1056,7 @@ EditTextObject*	ImpEditEngine::CreateBinTextObject( EditSelection aSel, SfxItemP
 	if ( pTxtObj->IsOwnerOfPool() )
 		pTxtObj->GetPool()->SetDefaultMetric( (SfxMapUnit) eMapUnit );
 
-	sal_uInt16 nStartNode, nEndNode;
+	sal_uInt32 nStartNode, nEndNode;
 	sal_uInt32 nTextPortions = 0;
 
 	aSel.Adjust( aEditDoc );
@@ -1073,7 +1073,7 @@ EditTextObject*	ImpEditEngine::CreateBinTextObject( EditSelection aSel, SfxItemP
 	pTxtObj->SetScriptType( GetScriptType( aSel ) );
 
 	// ueber die Absaetze iterieren...
-	sal_uInt16 nNode;
+	sal_uInt32 nNode;
 	for ( nNode = nStartNode; nNode <= nEndNode; nNode++  )
 	{
 		ContentNode* pNode = aEditDoc.SaveGetObject( nNode );
@@ -1264,10 +1264,10 @@ EditSelection ImpEditEngine::InsertBinTextObject( BinTextObject& rTextObject, Ed
 			bConvertItems = sal_True;
 	}
 
-	sal_uInt16 nContents = rTextObject.GetContents().Count();
-	sal_uInt16 nPara = aEditDoc.GetPos( aPaM.GetNode() );
+	sal_uInt32 nContents = rTextObject.GetContents().Count();
+	sal_uInt32 nPara = aEditDoc.GetPos( aPaM.GetNode() );
 
-	for ( sal_uInt16 n = 0; n < nContents; n++, nPara++ )
+	for ( sal_uInt32 n = 0; n < nContents; n++, nPara++ )
 	{
 		ContentInfo* pC = rTextObject.GetContents().GetObject( n );
 		sal_Bool bNewContent = aPaM.GetNode()->Len() ? sal_False: sal_True;
@@ -1535,8 +1535,8 @@ sal_Bool ImpEditEngine::HasConvertibleTextPortion( LanguageType nSrcLang )
 #else
     sal_Bool    bHasConvTxt = sal_False;
 
-    sal_uInt16 nParas = pEditEngine->GetParagraphCount();
-    for (sal_uInt16 k = 0;  k < nParas;  ++k)
+    sal_uInt32 nParas = pEditEngine->GetParagraphCount();
+    for (sal_uInt32 k = 0;  k < nParas;  ++k)
     {
         SvUShorts aPortions;
         pEditEngine->GetPortions( k, aPortions );
@@ -1723,7 +1723,7 @@ void ImpEditEngine::ImpConvert( rtl::OUString &rConvTxt, LanguageType &rConvTxtL
 		if (bAllowImplicitChangesForNotConvertibleText &&
             !pEditEngine->GetText( pConvInfo->aConvContinue.nPara ).Len())
 		{
-			sal_uInt16 nPara = pConvInfo->aConvContinue.nPara;
+			sal_uInt32 nPara = pConvInfo->aConvContinue.nPara;
             ESelection aESel( nPara, 0, nPara, 0 );
             // see comment for below same function call
             SetLanguageAndFont( aESel,
@@ -1753,7 +1753,7 @@ void ImpEditEngine::ImpConvert( rtl::OUString &rConvTxt, LanguageType &rConvTxtL
 		sal_uInt16 nCurPos		= USHRT_MAX;
 		EPaM aCurStart = CreateEPaM( aCurSel.Min() );
 		SvUShorts aPortions;
-		pEditEngine->GetPortions( (sal_uInt16)aCurStart.nPara, aPortions );
+		pEditEngine->GetPortions( aCurStart.nPara, aPortions );
 		for ( sal_uInt16 nPos = 0; nPos < aPortions.Count(); ++nPos )
 		{
 			sal_uInt16 nEnd	  = aPortions.GetObject( nPos );
@@ -2362,10 +2362,10 @@ void ImpEditEngine::DoOnlineSpelling( ContentNode* pThisNodeOnly, sal_Bool bSpel
 	sal_Bool bRestartTimer = sal_False;
 
 	ContentNode* pLastNode = aEditDoc.SaveGetObject( aEditDoc.Count() - 1 );
-	sal_uInt16 nNodes = GetEditDoc().Count();
+	sal_uInt32 nNodes = GetEditDoc().Count();
 	sal_uInt16 nInvalids = 0;
 	Sequence< PropertyValue > aEmptySeq;
-	for ( sal_uInt16 n = 0; n < nNodes; n++ )
+	for ( sal_uInt32 n = 0; n < nNodes; n++ )
 	{
 		ContentNode* pNode = GetEditDoc().GetObject( n );
 		if ( pThisNodeOnly )
@@ -2722,8 +2722,8 @@ sal_Bool ImpEditEngine::ImpSearch( const SvxSearchItem& rSearchItem,
 
 	sal_Bool bBack = rSearchItem.GetBackward();
 	sal_Bool bSearchInSelection = rSearchItem.GetSelection();
-	sal_uInt16 nStartNode = aEditDoc.GetPos( rStartPos.GetNode() );
-	sal_uInt16 nEndNode;
+	sal_uInt32 nStartNode = aEditDoc.GetPos( rStartPos.GetNode() );
+	sal_uInt32 nEndNode;
 	if ( bSearchInSelection )
 	{
 		nEndNode = aEditDoc.GetPos( bBack ? rSearchSelection.Min().GetNode() : rSearchSelection.Max().GetNode() );
@@ -2736,7 +2736,7 @@ sal_Bool ImpEditEngine::ImpSearch( const SvxSearchItem& rSearchItem,
 	utl::TextSearch aSearcher( aSearchOptions );
 
 	// ueber die Absaetze iterieren...
-	for ( sal_uInt16 nNode = nStartNode;
+	for ( sal_uInt32 nNode = nStartNode;
 			bBack ? ( nNode >= nEndNode ) : ( nNode <= nEndNode) ;
 			bBack ? nNode-- : nNode++ )
 	{
@@ -2840,8 +2840,8 @@ EditSelection ImpEditEngine::TransliterateText( const EditSelection& rSelection,
 
     EditSelection aNewSel( aSel );
 
-	const sal_uInt16 nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() );
-	const sal_uInt16 nEndNode = aEditDoc.GetPos( aSel.Max().GetNode() );
+	const sal_uInt32 nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() );
+	const sal_uInt32 nEndNode = aEditDoc.GetPos( aSel.Max().GetNode() );
 
 	sal_Bool bChanges = sal_False;
     sal_Bool bLenChanged = sal_False;
@@ -2850,7 +2850,7 @@ EditSelection ImpEditEngine::TransliterateText( const EditSelection& rSelection,
 	utl::TransliterationWrapper aTranslitarationWrapper( ::comphelper::getProcessServiceFactory(), nTransliterationMode );
 	sal_Bool bConsiderLanguage = aTranslitarationWrapper.needLanguageForTheMode();
 
-	for ( sal_uInt16 nNode = nStartNode; nNode <= nEndNode; nNode++	)
+	for ( sal_uInt32 nNode = nStartNode; nNode <= nEndNode; nNode++	)
 	{
 		ContentNode* pNode = aEditDoc.GetObject( nNode );
 		xub_StrLen nStartPos = 0;
@@ -3117,7 +3117,7 @@ EditSelection ImpEditEngine::TransliterateText( const EditSelection& rSelection,
                 if (aSel.Max().GetNode() == rData.aSelection.Max().GetNode())
                     aNewSel.Max().GetIndex() = aNewSel.Max().GetIndex() + nDiffs;
 
-                sal_uInt16 nSelNode = aEditDoc.GetPos( rData.aSelection.Min().GetNode() );
+                sal_uInt32 nSelNode = aEditDoc.GetPos( rData.aSelection.Min().GetNode() );
                 ParaPortion* pParaPortion = GetParaPortions()[nSelNode];
 			    pParaPortion->MarkSelectionInvalid( rData.nStart, 
                         std::max< sal_uInt16 >( rData.nStart + rData.nLen, 
diff --git a/main/editeng/source/editeng/impedit5.cxx b/main/editeng/source/editeng/impedit5.cxx
index 6ac1e34984..1696098962 100644
--- a/main/editeng/source/editeng/impedit5.cxx
+++ b/main/editeng/source/editeng/impedit5.cxx
@@ -49,7 +49,7 @@ void ImpEditEngine::SetStyleSheetPool( SfxStyleSheetPool* pSPool )
 	}
 }
 
-SfxStyleSheet* ImpEditEngine::GetStyleSheet( sal_uInt16 nPara ) const
+SfxStyleSheet* ImpEditEngine::GetStyleSheet( sal_uInt32 nPara ) const
 {
 	ContentNode* pNode = aEditDoc.SaveGetObject( nPara );
 	return pNode ? pNode->GetContentAttribs().GetStyleSheet() : NULL;
@@ -59,19 +59,19 @@ void ImpEditEngine::SetStyleSheet( EditSelection aSel, SfxStyleSheet* pStyle )
 {
 	aSel.Adjust( aEditDoc );
 
-	sal_uInt16 nStartPara = aEditDoc.GetPos( aSel.Min().GetNode() );
-	sal_uInt16 nEndPara = aEditDoc.GetPos( aSel.Max().GetNode() );
+	sal_uInt32 nStartPara = aEditDoc.GetPos( aSel.Min().GetNode() );
+	sal_uInt32 nEndPara = aEditDoc.GetPos( aSel.Max().GetNode() );
 
 	sal_Bool _bUpdate = GetUpdateMode();
 	SetUpdateMode( sal_False );
 
-	for ( sal_uInt16 n = nStartPara; n <= nEndPara; n++ )
+	for ( sal_uInt32 n = nStartPara; n <= nEndPara; n++ )
 		SetStyleSheet( n, pStyle );
 
 	SetUpdateMode( _bUpdate, 0 );
 }
 
-void ImpEditEngine::SetStyleSheet( sal_uInt16 nPara, SfxStyleSheet* pStyle )
+void ImpEditEngine::SetStyleSheet( sal_uInt32 nPara, SfxStyleSheet* pStyle )
 {
 	DBG_ASSERT( GetStyleSheetPool() || !pStyle, "SetStyleSheet: No StyleSheetPool registered!" );
 	ContentNode* pNode = aEditDoc.SaveGetObject( nPara );
@@ -110,7 +110,7 @@ void ImpEditEngine::UpdateParagraphsWithStyleSheet( SfxStyleSheet* pStyle )
 	CreateFont( aFontFromStyle, pStyle->GetItemSet() );
 
 	sal_Bool bUsed = sal_False;
-	for ( sal_uInt16 nNode = 0; nNode < aEditDoc.Count(); nNode++ )
+	for ( sal_uInt32 nNode = 0; nNode < aEditDoc.Count(); nNode++ )
 	{
 		ContentNode* pNode = aEditDoc.GetObject( nNode );
 		if ( pNode->GetStyleSheet() == pStyle )
@@ -133,7 +133,7 @@ void ImpEditEngine::UpdateParagraphsWithStyleSheet( SfxStyleSheet* pStyle )
 
 void ImpEditEngine::RemoveStyleFromParagraphs( SfxStyleSheet* pStyle )
 {
-	for ( sal_uInt16 nNode = 0; nNode < aEditDoc.Count(); nNode++ )
+	for ( sal_uInt32 nNode = 0; nNode < aEditDoc.Count(); nNode++ )
 	{
 		ContentNode* pNode = aEditDoc.GetObject(nNode);
 		if ( pNode->GetStyleSheet() == pStyle )
@@ -203,8 +203,8 @@ EditUndoSetAttribs* ImpEditEngine::CreateAttribUndo( EditSelection aSel, const S
 
 	ESelection aESel( CreateESel( aSel ) );
 
-	sal_uInt16 nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() );
-	sal_uInt16 nEndNode = aEditDoc.GetPos( aSel.Max().GetNode() );
+	sal_uInt32 nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() );
+	sal_uInt32 nEndNode = aEditDoc.GetPos( aSel.Max().GetNode() );
 
 	DBG_ASSERT( nStartNode <= nEndNode, "CreateAttribUndo: Start > End ?!" );
 
@@ -222,7 +222,7 @@ EditUndoSetAttribs* ImpEditEngine::CreateAttribUndo( EditSelection aSel, const S
 
 	SfxItemPool* pPool = pUndo->GetNewAttribs().GetPool();
 
-	for ( sal_uInt16 nPara = nStartNode; nPara <= nEndNode; nPara++ )
+	for ( sal_uInt32 nPara = nStartNode; nPara <= nEndNode; nPara++ )
 	{
 		ContentNode* pNode = aEditDoc.GetObject( nPara );
 		DBG_ASSERT( aEditDoc.SaveGetObject( nPara ), "Node nicht gefunden: CreateAttribUndo" );
@@ -347,11 +347,11 @@ SfxItemSet ImpEditEngine::GetAttribs( EditSelection aSel, sal_Bool bOnlyHardAttr
 
 	SfxItemSet aCurSet( GetEmptyItemSet() );
 
-	sal_uInt16 nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() );
-	sal_uInt16 nEndNode = aEditDoc.GetPos( aSel.Max().GetNode() );
+	sal_uInt32 nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() );
+	sal_uInt32 nEndNode = aEditDoc.GetPos( aSel.Max().GetNode() );
 
 	// ueber die Absaetze iterieren...
-	for ( sal_uInt16 nNode = nStartNode; nNode <= nEndNode; nNode++	)
+	for ( sal_uInt32 nNode = nStartNode; nNode <= nEndNode; nNode++	)
 	{
 		ContentNode* pNode = aEditDoc.GetObject( nNode );
 		DBG_ASSERT( aEditDoc.SaveGetObject( nNode ), "Node nicht gefunden: GetAttrib" );
@@ -434,7 +434,7 @@ SfxItemSet ImpEditEngine::GetAttribs( EditSelection aSel, sal_Bool bOnlyHardAttr
 }
 
 
-SfxItemSet ImpEditEngine::GetAttribs( sal_uInt16 nPara, sal_uInt16 nStart, sal_uInt16 nEnd, sal_uInt8 nFlags ) const
+SfxItemSet ImpEditEngine::GetAttribs( sal_uInt32 nPara, sal_uInt16 nStart, sal_uInt16 nEnd, sal_uInt8 nFlags ) const
 {
     // MT: #94002# Optimized function with less Puts(), which cause unnecessary cloning from default items.
     // If this works, change GetAttribs( EditSelection ) to use this for each paragraph and merge the results!
@@ -534,8 +534,8 @@ void ImpEditEngine::SetAttribs( EditSelection aSel, const SfxItemSet& rSet, sal_
 	if ( ( nSpecial == ATTRSPECIAL_WHOLEWORD ) && !aSel.HasRange() )
 		aSel = SelectWord( aSel, ::com::sun::star::i18n::WordType::ANYWORD_IGNOREWHITESPACES, sal_False );
 
-	sal_uInt16 nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() );
-	sal_uInt16 nEndNode = aEditDoc.GetPos( aSel.Max().GetNode() );
+	sal_uInt32 nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() );
+	sal_uInt32 nEndNode = aEditDoc.GetPos( aSel.Max().GetNode() );
 
 	if ( IsUndoEnabled() && !IsInUndo() && aStatus.DoUndoAttribs() )
 	{
@@ -553,7 +553,7 @@ void ImpEditEngine::SetAttribs( EditSelection aSel, const SfxItemSet& rSet, sal_
 	}
 
 	// ueber die Absaetze iterieren...
-	for ( sal_uInt16 nNode = nStartNode; nNode <= nEndNode; nNode++	)
+	for ( sal_uInt32 nNode = nStartNode; nNode <= nEndNode; nNode++	)
 	{
 		sal_Bool bParaAttribFound = sal_False;
 		sal_Bool bCharAttribFound = sal_False;
@@ -638,8 +638,8 @@ void ImpEditEngine::RemoveCharAttribs( EditSelection aSel, sal_Bool bRemoveParaA
 {
 	aSel.Adjust( aEditDoc );
 
-	sal_uInt16 nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() );
-	sal_uInt16 nEndNode = aEditDoc.GetPos( aSel.Max().GetNode() );
+	sal_uInt32 nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() );
+	sal_uInt32 nEndNode = aEditDoc.GetPos( aSel.Max().GetNode() );
 
 	const SfxItemSet* _pEmptyItemSet = bRemoveParaAttribs ? &GetEmptyItemSet() : 0;
 
@@ -654,7 +654,7 @@ void ImpEditEngine::RemoveCharAttribs( EditSelection aSel, sal_Bool bRemoveParaA
 	}
 
 	// ueber die Absaetze iterieren...
-	for ( sal_uInt16 nNode = nStartNode; nNode <= nEndNode; nNode++	)
+	for ( sal_uInt32 nNode = nStartNode; nNode <= nEndNode; nNode++	)
 	{
 		ContentNode* pNode = aEditDoc.GetObject( nNode );
 		ParaPortion* pPortion = GetParaPortions().GetObject( nNode );
@@ -702,7 +702,7 @@ void ImpEditEngine::RemoveCharAttribs( EditSelection aSel, sal_Bool bRemoveParaA
 
 typedef EditCharAttrib* EditCharAttribPtr;
 
-void ImpEditEngine::RemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich, sal_Bool bRemoveFeatures )
+void ImpEditEngine::RemoveCharAttribs( sal_uInt32 nPara, sal_uInt16 nWhich, sal_Bool bRemoveFeatures )
 {
 	ContentNode* pNode = aEditDoc.SaveGetObject( nPara );
 	ParaPortion* pPortion = GetParaPortions().SaveGetObject( nPara );
@@ -731,7 +731,7 @@ void ImpEditEngine::RemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich, sal_
 	pPortion->MarkSelectionInvalid( 0, pNode->Len() );
 }
 
-void ImpEditEngine::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
+void ImpEditEngine::SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet )
 {
 	ContentNode* pNode = aEditDoc.SaveGetObject( nPara );
 
@@ -771,14 +771,14 @@ void ImpEditEngine::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
 	}
 }
 
-const SfxItemSet& ImpEditEngine::GetParaAttribs( sal_uInt16 nPara ) const
+const SfxItemSet& ImpEditEngine::GetParaAttribs( sal_uInt32 nPara ) const
 {
 	ContentNode* pNode = aEditDoc.GetObject( nPara );
 	DBG_ASSERT( pNode, "Node nicht gefunden: GetParaAttribs" );
 	return pNode->GetContentAttribs().GetItems();
 }
 
-sal_Bool ImpEditEngine::HasParaAttrib( sal_uInt16 nPara, sal_uInt16 nWhich ) const
+sal_Bool ImpEditEngine::HasParaAttrib( sal_uInt32 nPara, sal_uInt16 nWhich ) const
 {
 	ContentNode* pNode = aEditDoc.GetObject( nPara );
 	DBG_ASSERT( pNode, "Node nicht gefunden: HasParaAttrib" );
@@ -786,7 +786,7 @@ sal_Bool ImpEditEngine::HasParaAttrib( sal_uInt16 nPara, sal_uInt16 nWhich ) con
 	return pNode->GetContentAttribs().HasItem( nWhich );
 }
 
-const SfxPoolItem& ImpEditEngine::GetParaAttrib( sal_uInt16 nPara, sal_uInt16 nWhich ) const
+const SfxPoolItem& ImpEditEngine::GetParaAttrib( sal_uInt32 nPara, sal_uInt16 nWhich ) const
 {
 	ContentNode* pNode = aEditDoc.GetObject( nPara );
 	DBG_ASSERT( pNode, "Node nicht gefunden: GetParaAttrib" );
@@ -794,7 +794,7 @@ const SfxPoolItem& ImpEditEngine::GetParaAttrib( sal_uInt16 nPara, sal_uInt16 nW
     return pNode->GetContentAttribs().GetItem( nWhich );
 }
 
-void ImpEditEngine::GetCharAttribs( sal_uInt16 nPara, EECharAttribArray& rLst ) const
+void ImpEditEngine::GetCharAttribs( sal_uInt32 nPara, EECharAttribArray& rLst ) const
 {
 	rLst.Remove( 0, rLst.Count() );
 	ContentNode* pNode = aEditDoc.GetObject( nPara );
diff --git a/main/editeng/source/outliner/outleeng.cxx b/main/editeng/source/outliner/outleeng.cxx
index c91887f247..c75dd73d74 100644
--- a/main/editeng/source/outliner/outleeng.cxx
+++ b/main/editeng/source/outliner/outleeng.cxx
@@ -51,7 +51,7 @@ OutlinerEditEng::~OutlinerEditEng()
 {
 }
 
-void OutlinerEditEng::PaintingFirstLine( sal_uInt16 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev )
+void OutlinerEditEng::PaintingFirstLine( sal_uInt32 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev )
 {
 	if( GetControlWord() & EE_CNTRL_OUTLINER )
 	{
@@ -62,7 +62,7 @@ void OutlinerEditEng::PaintingFirstLine( sal_uInt16 nPara, const Point& rStartPo
     pOwner->PaintBullet( nPara, rStartPos, rOrigin, nOrientation, pOutDev );
 }
 
-const SvxNumberFormat* OutlinerEditEng::GetNumberFormat( sal_uInt16 nPara ) const
+const SvxNumberFormat* OutlinerEditEng::GetNumberFormat( sal_uInt32 nPara ) const
 {
     const SvxNumberFormat* pFmt = NULL;
     if (pOwner)
@@ -71,7 +71,7 @@ const SvxNumberFormat* OutlinerEditEng::GetNumberFormat( sal_uInt16 nPara ) cons
 }
 
 
-Rectangle OutlinerEditEng::GetBulletArea( sal_uInt16 nPara )
+Rectangle OutlinerEditEng::GetBulletArea( sal_uInt32 nPara )
 {
 	Rectangle aBulletArea = Rectangle( Point(), Point() );
 	if ( nPara < pOwner->pParaList->GetParagraphCount() )
@@ -82,21 +82,21 @@ Rectangle OutlinerEditEng::GetBulletArea( sal_uInt16 nPara )
 	return aBulletArea;
 }
 
-void OutlinerEditEng::ParagraphInserted( sal_uInt16 nNewParagraph )
+void OutlinerEditEng::ParagraphInserted( sal_uInt32 nNewParagraph )
 {
 	pOwner->ParagraphInserted( nNewParagraph );
 
     EditEngine::ParagraphInserted( nNewParagraph );
 }
 
-void OutlinerEditEng::ParagraphDeleted( sal_uInt16 nDeletedParagraph )
+void OutlinerEditEng::ParagraphDeleted( sal_uInt32 nDeletedParagraph )
 {
 	pOwner->ParagraphDeleted( nDeletedParagraph );
 
     EditEngine::ParagraphDeleted( nDeletedParagraph );
 }
 
-void OutlinerEditEng::ParagraphConnected( sal_uInt16 /*nLeftParagraph*/, sal_uInt16 nRightParagraph )
+void OutlinerEditEng::ParagraphConnected( sal_uInt32 /*nLeftParagraph*/, sal_uInt32 nRightParagraph )
 {
     if( pOwner && pOwner->IsUndoEnabled() && !const_cast<EditEngine&>(pOwner->GetEditEngine()).IsInUndo() )
     {
@@ -114,7 +114,7 @@ void OutlinerEditEng::StyleSheetChanged( SfxStyleSheet* pStyle )
 	pOwner->StyleSheetChanged( pStyle );
 }
 
-void OutlinerEditEng::ParaAttribsChanged( sal_uInt16 nPara )
+void OutlinerEditEng::ParaAttribsChanged( sal_uInt32 nPara )
 {
 	pOwner->ParaAttribsChanged( nPara );
 }
@@ -155,7 +155,7 @@ XubString OutlinerEditEng::GetUndoComment( sal_uInt16 nUndoId ) const
 
 // #101498#
 void OutlinerEditEng::DrawingText( const Point& rStartPos, const XubString& rText, sal_uInt16 nTextStart, sal_uInt16 nTextLen,
-    const sal_Int32* pDXArray, const SvxFont& rFont, sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
+    const sal_Int32* pDXArray, const SvxFont& rFont, sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
     const EEngineData::WrongSpellVector* pWrongSpellVector,
     const SvxFieldData* pFieldData,
     bool bEndOfLine,
@@ -200,23 +200,23 @@ void OutlinerEditEng::DrawingText( const Point& rStartPos, const XubString& rTex
         pWrongSpellVector, pFieldData, bEndOfLine, bEndOfParagraph, bEndOfBullet, pLocale, rOverlineColor, rTextLineColor);
 }
 
-void OutlinerEditEng::FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos )
+void OutlinerEditEng::FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos )
 {
 	EditEngine::FieldClicked( rField, nPara, nPos );	// Falls URL
 	pOwner->FieldClicked( rField, nPara, nPos );
 }
 
-void OutlinerEditEng::FieldSelected( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos )
+void OutlinerEditEng::FieldSelected( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos )
 {
 	pOwner->FieldSelected( rField, nPara, nPos );
 }
 
-XubString OutlinerEditEng::CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
+XubString OutlinerEditEng::CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
 {
 	return pOwner->CalcFieldValue( rField, nPara, nPos, rpTxtColor, rpFldColor );
 }
 
-void OutlinerEditEng::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
+void OutlinerEditEng::SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet )
 {
 	Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
 	if( pPara )
@@ -224,13 +224,13 @@ void OutlinerEditEng::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
 		if ( !IsInUndo() && IsUndoEnabled() )
 			pOwner->UndoActionStart( OLUNDO_ATTR );
 
-        EditEngine::SetParaAttribs( (sal_uInt16)nPara, rSet );
+        EditEngine::SetParaAttribs( nPara, rSet );
 
-		pOwner->ImplCheckNumBulletItem( (sal_uInt16)nPara );
+		pOwner->ImplCheckNumBulletItem( nPara );
         // --> OD 2009-03-10 #i100014#
         // It is not a good idea to subtract 1 from a count and cast the result
         // to sal_uInt16 without check, if the count is 0.
-        pOwner->ImplCheckParagraphs( (sal_uInt16)nPara, (sal_uInt16) (pOwner->pParaList->GetParagraphCount()) );
+        pOwner->ImplCheckParagraphs( nPara, (sal_uInt32) (pOwner->pParaList->GetParagraphCount()) );
         // <--
 
 		if ( !IsInUndo() && IsUndoEnabled() )
diff --git a/main/editeng/source/outliner/outleeng.hxx b/main/editeng/source/outliner/outleeng.hxx
index d3177eff3a..3024698156 100644
--- a/main/editeng/source/outliner/outleeng.hxx
+++ b/main/editeng/source/outliner/outleeng.hxx
@@ -39,22 +39,22 @@ protected:
 
     // derived from EditEngine. Allows Outliner objetcs to provide
     // bullet access to the EditEngine.
-    virtual const SvxNumberFormat*  GetNumberFormat( sal_uInt16 nPara ) const;
+    virtual const SvxNumberFormat*  GetNumberFormat( sal_uInt32 nPara ) const;
 
 public:
 						OutlinerEditEng( Outliner* pOwner, SfxItemPool* pPool );
 						~OutlinerEditEng();
 
-	virtual void 		PaintingFirstLine( sal_uInt16 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev );
+	virtual void 		PaintingFirstLine( sal_uInt32 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev );
 
-	virtual void 		ParagraphInserted( sal_uInt16 nNewParagraph );
-	virtual void 		ParagraphDeleted( sal_uInt16 nDeletedParagraph );
-    virtual void        ParagraphConnected( sal_uInt16 nLeftParagraph, sal_uInt16 nRightParagraph );
+	virtual void 		ParagraphInserted( sal_uInt32 nNewParagraph );
+	virtual void 		ParagraphDeleted( sal_uInt32 nDeletedParagraph );
+    virtual void        ParagraphConnected( sal_uInt32 nLeftParagraph, sal_uInt32 nRightParagraph );
 
 	// #101498#
 	virtual void DrawingText(
         const Point& rStartPos, const XubString& rText, sal_uInt16 nTextStart, sal_uInt16 nTextLen, const sal_Int32* pDXArray, const SvxFont& rFont,
-        sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
+        sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
         const EEngineData::WrongSpellVector* pWrongSpellVector,
         const SvxFieldData* pFieldData,
         bool bEndOfLine,
@@ -65,20 +65,20 @@ public:
         const Color& rTextLineColor);
 
 	virtual	void 		StyleSheetChanged( SfxStyleSheet* pStyle );
-	virtual void 		ParaAttribsChanged( sal_uInt16 nPara );
+	virtual void 		ParaAttribsChanged( sal_uInt32 nPara );
 	virtual sal_Bool 		SpellNextDocument();
 	virtual XubString	GetUndoComment( sal_uInt16 nUndoId ) const;
 
     // for text conversion
     virtual sal_Bool        ConvertNextDocument();
 
-	virtual void		FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos );
-	virtual void		FieldSelected( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos );
-	virtual XubString	CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rTxtColor, Color*& rFldColor );
+	virtual void		FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos );
+	virtual void		FieldSelected( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos );
+	virtual XubString	CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rTxtColor, Color*& rFldColor );
 
-	virtual Rectangle 	GetBulletArea( sal_uInt16 nPara );
+	virtual Rectangle 	GetBulletArea( sal_uInt32 nPara );
 
-   	virtual void        SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet );
+   	virtual void        SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet );
 
     // belongs into class Outliner, move there before incompatible update!
     Link                aOutlinerNotifyHdl;
diff --git a/main/editeng/source/outliner/outlin2.cxx b/main/editeng/source/outliner/outlin2.cxx
index fabc971b1e..e300d9b9cc 100644
--- a/main/editeng/source/outliner/outlin2.cxx
+++ b/main/editeng/source/outliner/outlin2.cxx
@@ -214,7 +214,7 @@ String Outliner::GetWordDelimiters() const
 	return pEditEngine->GetWordDelimiters();
 }
 
-String Outliner::GetWord( sal_uInt16 nPara, sal_uInt16 nIndex )
+String Outliner::GetWord( sal_uInt32 nPara, sal_uInt16 nIndex )
 {
 	DBG_CHKTHIS(Outliner,0);
 	return pEditEngine->GetWord( nPara, nIndex );
@@ -326,7 +326,7 @@ Size Outliner::CalcTextSize()
 Point Outliner::GetDocPos( Paragraph* pPara )
 {
 	DBG_CHKTHIS(Outliner,0);
-	return pEditEngine->GetDocPosTopLeft( (sal_uInt16)pParaList->GetAbsPos( pPara ) );
+	return pEditEngine->GetDocPosTopLeft( pParaList->GetAbsPos( pPara ) );
 }
 
 void Outliner::SetStyleSheetPool( SfxStyleSheetPool* pSPool )
@@ -344,7 +344,7 @@ SfxStyleSheetPool* Outliner::GetStyleSheetPool()
 SfxStyleSheet* Outliner::GetStyleSheet( sal_uLong nPara )
 {
 	DBG_CHKTHIS(Outliner,0);
-	return pEditEngine->GetStyleSheet( (sal_uInt16)nPara );
+	return pEditEngine->GetStyleSheet( nPara );
 }
 
 sal_Bool Outliner::IsInSelectionMode() const
@@ -430,22 +430,22 @@ sal_Bool Outliner::IsInUndo()
 sal_uLong Outliner::GetLineCount( sal_uLong nParagraph ) const
 {
 	DBG_CHKTHIS(Outliner,0);
-	return pEditEngine->GetLineCount( (sal_uInt16)nParagraph );
+	return pEditEngine->GetLineCount( nParagraph );
 }
 
 sal_uInt16 Outliner::GetLineLen( sal_uLong nParagraph, sal_uInt16 nLine ) const
 {
 	DBG_CHKTHIS(Outliner,0);
-	return pEditEngine->GetLineLen( (sal_uInt16)nParagraph, nLine );
+	return pEditEngine->GetLineLen( nParagraph, nLine );
 }
 
 sal_uLong Outliner::GetLineHeight( sal_uLong nParagraph, sal_uLong nLine )
 {
 	DBG_CHKTHIS(Outliner,0);
-	return pEditEngine->GetLineHeight( (sal_uInt16)nParagraph, (sal_uInt16)nLine );
+	return pEditEngine->GetLineHeight( nParagraph, (sal_uInt16)nLine );
 }
 
-void Outliner::QuickRemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich )
+void Outliner::QuickRemoveCharAttribs( sal_uInt32 nPara, sal_uInt16 nWhich )
 {
 	DBG_CHKTHIS(Outliner,0);
 	pEditEngine->QuickRemoveCharAttribs( nPara, nWhich );
@@ -563,13 +563,13 @@ OutputDevice* Outliner::GetRefDevice() const
 sal_uInt16 Outliner::GetFirstLineOffset( sal_uLong nParagraph )
 {
 	DBG_CHKTHIS(Outliner,0);
-	return pEditEngine->GetFirstLineOffset( (sal_uInt16)nParagraph );
+	return pEditEngine->GetFirstLineOffset( nParagraph );
 }
 
 sal_uLong Outliner::GetTextHeight( sal_uLong nParagraph ) const
 {
 	DBG_CHKTHIS(Outliner,0);
-	return pEditEngine->GetTextHeight((sal_uInt16)nParagraph );
+	return pEditEngine->GetTextHeight( nParagraph );
 }
 
 Point Outliner::GetDocPos( const Point& rPaperPos ) const
@@ -581,7 +581,7 @@ Point Outliner::GetDocPos( const Point& rPaperPos ) const
 Point Outliner::GetDocPosTopLeft( sal_uLong nParagraph )
 {
 	DBG_CHKTHIS(Outliner,0);
-	return pEditEngine->GetDocPosTopLeft( (sal_uInt16)nParagraph );
+	return pEditEngine->GetDocPosTopLeft( nParagraph );
 }
 
 sal_Bool Outliner::IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder )
@@ -598,7 +598,7 @@ sal_Bool Outliner::IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder, sal_Bo
 	if ( !bTextPos )
 	{
 		Point aDocPos = GetDocPos( rPaperPos );
-		sal_uInt16 nPara = pEditEngine->FindParagraph( aDocPos.Y() );
+		sal_uInt32 nPara = pEditEngine->FindParagraph( aDocPos.Y() );
 		if ( ( nPara != EE_PARA_NOT_FOUND ) && ImplHasNumberFormat( nPara ) )
 		{
 			Rectangle aBulArea = ImpCalcBulletArea( nPara, sal_True, sal_True );
@@ -737,7 +737,7 @@ sal_uInt16 Outliner::GetScriptType( const ESelection& rSelection ) const
 	return pEditEngine->GetScriptType( rSelection );
 }
 
-LanguageType Outliner::GetLanguage( sal_uInt16 nPara, sal_uInt16 nPos ) const
+LanguageType Outliner::GetLanguage( sal_uInt32 nPara, sal_uInt16 nPos ) const
 {
 	DBG_CHKTHIS(Outliner,0);
 	return pEditEngine->GetLanguage( nPara, nPos );
diff --git a/main/editeng/source/outliner/outliner.cxx b/main/editeng/source/outliner/outliner.cxx
index 7640ac1085..4d049a357a 100644
--- a/main/editeng/source/outliner/outliner.cxx
+++ b/main/editeng/source/outliner/outliner.cxx
@@ -135,9 +135,9 @@ Paragraph* Outliner::Insert(const XubString& rText, sal_uLong nAbsPos, sal_Int16
         ImplBlockInsertionCallbacks( sal_True );
 		pPara = new Paragraph( nDepth );
 		pParaList->Insert( pPara, nAbsPos );
-		pEditEngine->InsertParagraph( (sal_uInt16)nAbsPos, String() );
+		pEditEngine->InsertParagraph( (sal_uInt32)nAbsPos, String() );
 		DBG_ASSERT(pPara==pParaList->GetParagraph(nAbsPos),"Insert:Failed");
-		ImplInitDepth( (sal_uInt16)nAbsPos, nDepth, sal_False );
+		ImplInitDepth( (sal_uInt32)nAbsPos, nDepth, sal_False );
 		pHdlParagraph = pPara;
 		ParagraphInsertedHdl();
 		pPara->nFlags |= PARAFLAG_HOLDDEPTH;
@@ -151,7 +151,7 @@ Paragraph* Outliner::Insert(const XubString& rText, sal_uLong nAbsPos, sal_Int16
 }
 
 
-void Outliner::ParagraphInserted( sal_uInt16 nPara )
+void Outliner::ParagraphInserted( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS(Outliner,0);
 
@@ -189,7 +189,7 @@ void Outliner::ParagraphInserted( sal_uInt16 nPara )
 	}
 }
 
-void Outliner::ParagraphDeleted( sal_uInt16 nPara )
+void Outliner::ParagraphDeleted( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS(Outliner,0);
 
@@ -271,8 +271,8 @@ void Outliner::SetMaxDepth( sal_Int16 nDepth, sal_Bool bCheckParagraphs )
 
 		if( bCheckParagraphs )
 		{
-			sal_uInt16 nParagraphs = (sal_uInt16)pParaList->GetParagraphCount();
-			for ( sal_uInt16 nPara = 0; nPara < nParagraphs; nPara++ )
+			sal_uInt32 nParagraphs = pParaList->GetParagraphCount();
+			for ( sal_uInt32 nPara = 0; nPara < nParagraphs; nPara++ )
 			{
 				Paragraph* pPara = pParaList->GetParagraph( nPara );
 				if( pPara && pPara->GetDepth() > nMaxDepth )
@@ -303,7 +303,7 @@ void Outliner::SetDepth( Paragraph* pPara, sal_Int16 nNewDepth )
 		mnDepthChangeHdlPrevFlags = pPara->nFlags;
 		pHdlParagraph = pPara;
 
-        sal_uInt16 nPara = (sal_uInt16)GetAbsPos( pPara );
+        sal_uInt32 nPara = (sal_uInt32)GetAbsPos( pPara );
 		ImplInitDepth( nPara, nNewDepth, sal_True );
 		ImplCalcBulletText( nPara, sal_False, sal_False );
 
@@ -314,14 +314,14 @@ void Outliner::SetDepth( Paragraph* pPara, sal_Int16 nNewDepth )
 	}
 }
 
-sal_Int16 Outliner::GetNumberingStartValue( sal_uInt16 nPara )
+sal_Int16 Outliner::GetNumberingStartValue( sal_uInt32 nPara )
 {
 	Paragraph* pPara = pParaList->GetParagraph( nPara );
 	DBG_ASSERT( pPara, "Outliner::GetNumberingStartValue - Paragraph not found!" );
 	return pPara ? pPara->GetNumberingStartValue() : -1;
 }
 
-void Outliner::SetNumberingStartValue( sal_uInt16 nPara, sal_Int16 nNumberingStartValue )
+void Outliner::SetNumberingStartValue( sal_uInt32 nPara, sal_Int16 nNumberingStartValue )
 {
 	Paragraph* pPara = pParaList->GetParagraph( nPara );
 	DBG_ASSERT( pPara, "Outliner::GetNumberingStartValue - Paragraph not found!" );
@@ -336,20 +336,20 @@ void Outliner::SetNumberingStartValue( sal_uInt16 nPara, sal_Int16 nNumberingSta
         // --> OD 2009-03-10 #i100014#
         // It is not a good idea to subtract 1 from a count and cast the result
         // to sal_uInt16 without check, if the count is 0.
-        ImplCheckParagraphs( nPara, (sal_uInt16) (pParaList->GetParagraphCount()) );
+        ImplCheckParagraphs( nPara, (sal_uInt32) (pParaList->GetParagraphCount()) );
         // <--
         pEditEngine->SetModified();
     }
 }
 
-sal_Bool Outliner::IsParaIsNumberingRestart( sal_uInt16 nPara )
+sal_Bool Outliner::IsParaIsNumberingRestart( sal_uInt32 nPara )
 {
 	Paragraph* pPara = pParaList->GetParagraph( nPara );
 	DBG_ASSERT( pPara, "Outliner::IsParaIsNumberingRestart - Paragraph not found!" );
 	return pPara ? pPara->IsParaIsNumberingRestart() : sal_False;
 }
 
-void Outliner::SetParaIsNumberingRestart( sal_uInt16 nPara, sal_Bool bParaIsNumberingRestart )
+void Outliner::SetParaIsNumberingRestart( sal_uInt32 nPara, sal_Bool bParaIsNumberingRestart )
 {
 	Paragraph* pPara = pParaList->GetParagraph( nPara );
 	DBG_ASSERT( pPara, "Outliner::SetParaIsNumberingRestart - Paragraph not found!" );
@@ -364,15 +364,15 @@ void Outliner::SetParaIsNumberingRestart( sal_uInt16 nPara, sal_Bool bParaIsNumb
         // --> OD 2009-03-10 #i100014#
         // It is not a good idea to subtract 1 from a count and cast the result
         // to sal_uInt16 without check, if the count is 0.
-        ImplCheckParagraphs( nPara, (sal_uInt16) (pParaList->GetParagraphCount()) );
+        ImplCheckParagraphs( nPara, (sal_uInt32) (pParaList->GetParagraphCount()) );
         // <--
         pEditEngine->SetModified();
     }
 }
 
 sal_Int16 Outliner::GetBulletsNumberingStatus(
-    const sal_uInt16 nParaStart,
-    const sal_uInt16 nParaEnd ) const
+    const sal_uInt32 nParaStart,
+    const sal_uInt32 nParaEnd ) const
 {
     if ( nParaStart > nParaEnd
          || nParaEnd >= pParaList->GetParagraphCount() )
@@ -381,9 +381,9 @@ sal_Int16 Outliner::GetBulletsNumberingStatus(
         return 2;
     }
 
-    sal_uInt16 nBulletsCount = 0;
-    sal_uInt16 nNumberingCount = 0;
-    for (sal_uInt16 nPara = nParaStart; nPara <= nParaEnd; nPara++)
+    sal_uInt32 nBulletsCount = 0;
+    sal_uInt32 nNumberingCount = 0;
+    for (sal_uInt32 nPara = nParaStart; nPara <= nParaEnd; nPara++)
     {
         if ( !pParaList->GetParagraph(nPara) )
         {
@@ -407,7 +407,7 @@ sal_Int16 Outliner::GetBulletsNumberingStatus(
         }
     }
 
-    const sal_uInt16 nParaCount = nParaEnd - nParaStart + 1;
+    const sal_uInt32 nParaCount = nParaEnd - nParaStart + 1;
     if ( nBulletsCount == nParaCount )
     {
         return 0;
@@ -426,13 +426,13 @@ sal_Int16 Outliner::GetBulletsNumberingStatus() const
            : 2;
 }
 
-OutlinerParaObject* Outliner::CreateParaObject( sal_uInt16 nStartPara, sal_uInt16 nCount ) const
+OutlinerParaObject* Outliner::CreateParaObject( sal_uInt32 nStartPara, sal_uInt32 nCount ) const
 {
 	DBG_CHKTHIS(Outliner,0);
 
 	if ( sal::static_int_cast< sal_uLong >( nStartPara + nCount ) >
          pParaList->GetParagraphCount() )
-		nCount = sal::static_int_cast< sal_uInt16 >(
+		nCount = sal::static_int_cast< sal_uInt32 >(
             pParaList->GetParagraphCount() - nStartPara );
 
 	// When a new OutlinerParaObject is created because a paragraph is just being deleted,
@@ -446,9 +446,9 @@ OutlinerParaObject* Outliner::CreateParaObject( sal_uInt16 nStartPara, sal_uInt1
     EditTextObject* pText = pEditEngine->CreateTextObject( nStartPara, nCount );
     const bool bIsEditDoc(OUTLINERMODE_TEXTOBJECT == ImplGetOutlinerMode());
     ParagraphDataVector aParagraphDataVector(nCount);
-	const sal_uInt16 nLastPara(nStartPara + nCount - 1);
+	const sal_uInt32 nLastPara(nStartPara + nCount - 1);
 
-    for(sal_uInt16 nPara(nStartPara); nPara <= nLastPara; nPara++)
+    for(sal_uInt32 nPara(nStartPara); nPara <= nLastPara; nPara++)
     {
         aParagraphDataVector[nPara-nStartPara] = *GetParagraph(nPara);
     }
@@ -469,7 +469,7 @@ void Outliner::SetText( const XubString& rText, Paragraph* pPara )
 	pEditEngine->SetUpdateMode( sal_False );
 	ImplBlockInsertionCallbacks( sal_True );
 
-	sal_uInt16 nPara = (sal_uInt16)pParaList->GetAbsPos( pPara );
+	sal_uInt32 nPara = (sal_uInt32)pParaList->GetAbsPos( pPara );
 
 	if( !rText.Len() )
 	{
@@ -486,7 +486,7 @@ void Outliner::SetText( const XubString& rText, Paragraph* pPara )
 
 		sal_uInt16 nCount = aText.GetTokenCount( '\x0A' );
 		sal_uInt16 nPos = 0;
-		sal_uInt16 nInsPos = nPara+1;
+		sal_uInt32 nInsPos = nPara+1;
 		while( nCount > nPos )
 		{
 			XubString aStr = aText.GetToken( nPos, '\x0A' );
@@ -556,19 +556,19 @@ bool Outliner::ImpConvertEdtToOut( sal_uInt32 nPara,EditView* pView)
 	sal_uInt16 nTabs = 0;
 	ESelection aDelSel;
 
-//	const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( (sal_uInt16)nPara );
+//	const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( nPara );
 //	bool bAlreadyOutliner = rAttrs.GetItemState( EE_PARA_OUTLLRSPACE ) == SFX_ITEM_ON ? true : false;
 
 	XubString aName;
 	XubString aHeading_US( RTL_CONSTASCII_USTRINGPARAM( "heading" ) );
 	XubString aNumber_US( RTL_CONSTASCII_USTRINGPARAM( "Numbering" ) );
 
-	XubString aStr( pEditEngine->GetText( (sal_uInt16)nPara ) );
+	XubString aStr( pEditEngine->GetText( nPara ) );
 	xub_Unicode* pPtr = (xub_Unicode*)aStr.GetBuffer();
 
 	sal_uInt16 nHeadingNumberStart = 0;
 	sal_uInt16 nNumberingNumberStart = 0;
-	SfxStyleSheet* pStyle= pEditEngine->GetStyleSheet( (sal_uInt16)nPara );
+	SfxStyleSheet* pStyle= pEditEngine->GetStyleSheet( nPara );
 	if( pStyle )
 	{
 		aName = pStyle->GetName();
@@ -586,7 +586,7 @@ bool Outliner::ImpConvertEdtToOut( sal_uInt32 nPara,EditView* pView)
 				( pPtr[0] != '\t' ) && ( pPtr[1] == '\t' ) )
 		{
 			// Bullet & Tab raus
-			aDelSel = ESelection( (sal_uInt16)nPara, 0, (sal_uInt16)nPara, 2 );
+			aDelSel = ESelection( nPara, 0, nPara, 2 );
 		}
 
 		sal_uInt16 nPos = nHeadingNumberStart ? nHeadingNumberStart : nNumberingNumberStart;
@@ -607,7 +607,7 @@ bool Outliner::ImpConvertEdtToOut( sal_uInt32 nPara,EditView* pView)
 		}
 		// Tabulatoren aus dem Text entfernen
 		if( nTabs )
-			aDelSel = ESelection( (sal_uInt16)nPara, 0, (sal_uInt16)nPara, nTabs );
+			aDelSel = ESelection( nPara, 0, nPara, nTabs );
 	}
 
 	if ( aDelSel.HasRange() )
@@ -621,11 +621,11 @@ bool Outliner::ImpConvertEdtToOut( sal_uInt32 nPara,EditView* pView)
 			pEditEngine->QuickDelete( aDelSel );
 	}
 
-    const SfxInt16Item& rLevel = (const SfxInt16Item&) pEditEngine->GetParaAttrib( sal::static_int_cast< sal_uInt16 >(nPara), EE_PARA_OUTLLEVEL );
+    const SfxInt16Item& rLevel = (const SfxInt16Item&) pEditEngine->GetParaAttrib( nPara, EE_PARA_OUTLLEVEL );
     sal_Int16 nOutlLevel = rLevel.GetValue();
 
     ImplCheckDepth( nOutlLevel );
-	ImplInitDepth( sal::static_int_cast< sal_uInt16 >(nPara), nOutlLevel, sal_False );
+	ImplInitDepth( nPara, nOutlLevel, sal_False );
 
 	return bConverted;
 }
@@ -652,7 +652,7 @@ void Outliner::SetText( const OutlinerParaObject& rPObj )
 	bFirstParaIsEmpty = sal_False;
 
 	pParaList->Clear( sal_True );
-	for( sal_uInt16 nCurPara = 0; nCurPara < rPObj.Count(); nCurPara++ )
+	for( sal_uInt32 nCurPara = 0; nCurPara < rPObj.Count(); nCurPara++ )
 	{
 		Paragraph* pPara = new Paragraph( rPObj.GetParagraphData(nCurPara));
         ImplCheckDepth( pPara->nDepth );
@@ -664,7 +664,7 @@ void Outliner::SetText( const OutlinerParaObject& rPObj )
     // --> OD 2009-03-10 #i100014#
     // It is not a good idea to subtract 1 from a count and cast the result
     // to sal_uInt16 without check, if the count is 0.
-    ImplCheckParagraphs( 0, (sal_uInt16) (pParaList->GetParagraphCount()) );
+    ImplCheckParagraphs( 0, (sal_uInt32) (pParaList->GetParagraphCount()) );
     // <--
 
 	EnableUndo( bUndo );
@@ -684,7 +684,7 @@ void Outliner::AddText( const OutlinerParaObject& rPObj )
 	pEditEngine->SetUpdateMode( sal_False );
 
 	ImplBlockInsertionCallbacks( sal_True );
-	sal_uLong nPara;
+	sal_uInt32 nPara;
 	if( bFirstParaIsEmpty )
 	{
 		pParaList->Clear( sal_True );
@@ -698,11 +698,11 @@ void Outliner::AddText( const OutlinerParaObject& rPObj )
 	}
 	bFirstParaIsEmpty = sal_False;
 
-	for( sal_uInt16 n = 0; n < rPObj.Count(); n++ )
+	for( sal_uInt32 n = 0; n < rPObj.Count(); n++ )
 	{
 		pPara = new Paragraph( rPObj.GetParagraphData(n) );
 		pParaList->Insert( pPara, LIST_APPEND );
-		sal_uInt16 nP = sal::static_int_cast< sal_uInt16 >(nPara+n);
+		sal_uInt32 nP = nPara + n;
 		DBG_ASSERT(pParaList->GetAbsPos(pPara)==nP,"AddText:Out of sync");
 		ImplInitDepth( nP, pPara->GetDepth(), sal_False );
 	}
@@ -711,14 +711,14 @@ void Outliner::AddText( const OutlinerParaObject& rPObj )
     // --> OD 2009-03-10 #i100014#
     // It is not a good idea to subtract 1 from a count and cast the result
     // to sal_uInt16 without check, if the count is 0.
-    ImplCheckParagraphs( (sal_uInt16)nPara, (sal_uInt16) (pParaList->GetParagraphCount()) );
+    ImplCheckParagraphs( nPara, (sal_uInt32) (pParaList->GetParagraphCount()) );
     // <--
 
 	ImplBlockInsertionCallbacks( sal_False );
 	pEditEngine->SetUpdateMode( bUpdate );
 }
 
-void __EXPORT Outliner::FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos )
+void __EXPORT Outliner::FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos )
 {
 	DBG_CHKTHIS(Outliner,0);
 
@@ -731,7 +731,7 @@ void __EXPORT Outliner::FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPa
 }
 
 
-void __EXPORT Outliner::FieldSelected( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos )
+void __EXPORT Outliner::FieldSelected( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos )
 {
 	DBG_CHKTHIS(Outliner,0);
 	if ( !aFieldClickedHdl.IsSet() )
@@ -743,7 +743,7 @@ void __EXPORT Outliner::FieldSelected( const SvxFieldItem& rField, sal_uInt16 nP
 }
 
 
-XubString __EXPORT Outliner::CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
+XubString __EXPORT Outliner::CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
 {
 	DBG_CHKTHIS(Outliner,0);
 	if ( !aCalcFieldValueHdl.IsSet() )
@@ -773,9 +773,9 @@ void Outliner::SetStyleSheet( sal_uLong nPara, SfxStyleSheet* pStyle )
 	Paragraph* pPara = pParaList->GetParagraph( nPara );
         if (pPara)
         {
-            pEditEngine->SetStyleSheet( (sal_uInt16)nPara, pStyle );
+            pEditEngine->SetStyleSheet( nPara, pStyle );
             pPara->nFlags |= PARAFLAG_SETBULLETTEXT;
-            ImplCheckNumBulletItem( (sal_uInt16) nPara );
+            ImplCheckNumBulletItem( nPara );
         }
 }
 
@@ -788,18 +788,18 @@ void Outliner::SetVisible( Paragraph* pPara, sal_Bool bVisible )
         {
             pPara->bVisible = bVisible;
             sal_uLong nPara = pParaList->GetAbsPos( pPara );
-            pEditEngine->ShowParagraph( (sal_uInt16)nPara, bVisible );
+            pEditEngine->ShowParagraph( nPara, bVisible );
         }
 }
 
-void Outliner::ImplCheckNumBulletItem( sal_uInt16 nPara )
+void Outliner::ImplCheckNumBulletItem( sal_uInt32 nPara )
 {
 	Paragraph* pPara = pParaList->GetParagraph( nPara );
         if (pPara)
             pPara->aBulSize.Width() = -1;
 }
 
-void Outliner::ImplSetLevelDependendStyleSheet( sal_uInt16 nPara, SfxStyleSheet* pLevelStyle )
+void Outliner::ImplSetLevelDependendStyleSheet( sal_uInt32 nPara, SfxStyleSheet* pLevelStyle )
 {
 	DBG_CHKTHIS(Outliner,0);
 
@@ -834,7 +834,7 @@ void Outliner::ImplSetLevelDependendStyleSheet( sal_uInt16 nPara, SfxStyleSheet*
 	}
 }
 
-void Outliner::ImplInitDepth( sal_uInt16 nPara, sal_Int16 nDepth, sal_Bool bCreateUndo, sal_Bool bUndoAction )
+void Outliner::ImplInitDepth( sal_uInt32 nPara, sal_Int16 nDepth, sal_Bool bCreateUndo, sal_Bool bUndoAction )
 {
 	DBG_CHKTHIS(Outliner,0);
 
@@ -875,7 +875,7 @@ void Outliner::ImplInitDepth( sal_uInt16 nPara, sal_Int16 nDepth, sal_Bool bCrea
 	}
 }
 
-void Outliner::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
+void Outliner::SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet )
 {
 	DBG_CHKTHIS(Outliner,0);
 
@@ -895,7 +895,7 @@ sal_Bool Outliner::Expand( Paragraph* pPara )
 			UndoActionStart( OLUNDO_EXPAND );
 			pUndo = new OLUndoExpand( this, OLUNDO_EXPAND );
 			pUndo->pParas = 0;
-			pUndo->nCount = (sal_uInt16)pParaList->GetAbsPos( pPara );
+			pUndo->nCount = pParaList->GetAbsPos( pPara );
 		}
 		pHdlParagraph = pPara;
 		bIsExpanding = sal_True;
@@ -928,7 +928,7 @@ sal_Bool Outliner::Collapse( Paragraph* pPara )
 			UndoActionStart( OLUNDO_COLLAPSE );
 			pUndo = new OLUndoExpand( this, OLUNDO_COLLAPSE );
 			pUndo->pParas = 0;
-			pUndo->nCount = (sal_uInt16)pParaList->GetAbsPos( pPara );
+			pUndo->nCount = pParaList->GetAbsPos( pPara );
 		}
 
 		pHdlParagraph = pPara;
@@ -947,7 +947,7 @@ sal_Bool Outliner::Collapse( Paragraph* pPara )
 }
 
 
-Font Outliner::ImpCalcBulletFont( sal_uInt16 nPara ) const
+Font Outliner::ImpCalcBulletFont( sal_uInt32 nPara ) const
 {
     const SvxNumberFormat* pFmt = GetNumberFormat( nPara );
 	DBG_ASSERT( pFmt && ( pFmt->GetNumberingType() != SVX_NUM_BITMAP ) && ( pFmt->GetNumberingType() != SVX_NUM_NUMBER_NONE ), "ImpCalcBulletFont: Missing or BitmapBullet!" );
@@ -1003,7 +1003,7 @@ Font Outliner::ImpCalcBulletFont( sal_uInt16 nPara ) const
 	return aBulletFont;
 }
 
-void Outliner::PaintBullet( sal_uInt16 nPara, const Point& rStartPos,
+void Outliner::PaintBullet( sal_uInt32 nPara, const Point& rStartPos,
 	const Point& rOrigin, short nOrientation, OutputDevice* pOutDev )
 {
 	DBG_CHKTHIS(Outliner,0);
@@ -1188,11 +1188,11 @@ void Outliner::InvalidateBullet( Paragraph* /*pPara*/, sal_uLong nPara )
 {
 	DBG_CHKTHIS(Outliner,0);
 
-	long nLineHeight = (long)pEditEngine->GetLineHeight((sal_uInt16)nPara );
+	long nLineHeight = (long)pEditEngine->GetLineHeight(nPara );
 	OutlinerView* pView = aViewList.First();
 	while( pView )
 	{
-		Point aPos( pView->pEditView->GetWindowPosTopLeft((sal_uInt16)nPara ) );
+		Point aPos( pView->pEditView->GetWindowPosTopLeft( nPara ) );
 		Rectangle aRect( pView->GetOutputArea() );
 		aRect.Right() = aPos.X();
 		aRect.Top() = aPos.Y();
@@ -1221,9 +1221,9 @@ sal_uLong Outliner::Read( SvStream& rInput, const String& rBaseURL, sal_uInt16 e
 
 	bFirstParaIsEmpty = sal_False;
 
-	sal_uInt16 nParas = pEditEngine->GetParagraphCount();
+	sal_uInt32 nParas = pEditEngine->GetParagraphCount();
  	pParaList->Clear( sal_True );
-	sal_uInt16 n;
+	sal_uInt32 n;
 	for ( n = 0; n < nParas; n++ )
 	{
 		Paragraph* pPara = new Paragraph( 0 );
@@ -1274,7 +1274,7 @@ void Outliner::ImpFilterIndents( sal_uLong nFirstPara, sal_uLong nLastPara )
                             pPara->SetDepth( pLastConverted->GetDepth() );
                     }
 
-                    ImplInitDepth( (sal_uInt16)nPara, pPara->GetDepth(), sal_False );
+                    ImplInitDepth( nPara, pPara->GetDepth(), sal_False );
 		}
 	}
 
@@ -1293,7 +1293,7 @@ void Outliner::ImpFilterIndents( sal_uLong nFirstPara, sal_uLong nLastPara )
 	return pEditEngine->SetUndoManager(pNew);
 }
 
-void Outliner::ImpTextPasted( sal_uLong nStartPara, sal_uInt16 nCount )
+void Outliner::ImpTextPasted( sal_uInt32 nStartPara, sal_uInt32 nCount )
 {
 	DBG_CHKTHIS(Outliner,0);
 
@@ -1327,14 +1327,14 @@ void Outliner::ImpTextPasted( sal_uLong nStartPara, sal_uInt16 nCount )
 		else // EditEngine-Modus
 		{
 			sal_Int16 nDepth = -1;
-			const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( (sal_uInt16)nStartPara );
+			const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( nStartPara );
 			if ( rAttrs.GetItemState( EE_PARA_OUTLLEVEL ) == SFX_ITEM_ON )
 			{
 				const SfxInt16Item& rLevel = (const SfxInt16Item&) rAttrs.Get( EE_PARA_OUTLLEVEL );
 				nDepth = rLevel.GetValue();
 			}
 			if ( nDepth != GetDepth( nStartPara ) )
-				ImplInitDepth( (sal_uInt16)nStartPara, nDepth, sal_False );
+				ImplInitDepth( nStartPara, nDepth, sal_False );
 		}
 
 		nCount--;
@@ -1516,7 +1516,7 @@ sal_Bool Outliner::HasChilds( Paragraph* pParagraph ) const
 	return pParaList->HasChilds( pParagraph );
 }
 
-bool Outliner::ImplHasNumberFormat( sal_uInt16 nPara ) const
+bool Outliner::ImplHasNumberFormat( sal_uInt32 nPara ) const
 {
     return GetNumberFormat(nPara) != 0;
 	if ( GetNumberFormat(nPara) )
@@ -1528,7 +1528,7 @@ bool Outliner::ImplHasNumberFormat( sal_uInt16 nPara ) const
 		return sal_False;
 }
 
-const SvxNumberFormat* Outliner::GetNumberFormat( sal_uInt16 nPara ) const
+const SvxNumberFormat* Outliner::GetNumberFormat( sal_uInt32 nPara ) const
 {
     const SvxNumberFormat* pFmt = NULL;
 
@@ -1548,7 +1548,7 @@ const SvxNumberFormat* Outliner::GetNumberFormat( sal_uInt16 nPara ) const
     return pFmt;
 }
 
-Size Outliner::ImplGetBulletSize( sal_uInt16 nPara )
+Size Outliner::ImplGetBulletSize( sal_uInt32 nPara )
 {
 	Paragraph* pPara = pParaList->GetParagraph( nPara );
         if (!pPara)
@@ -1583,13 +1583,13 @@ Size Outliner::ImplGetBulletSize( sal_uInt16 nPara )
 	return pPara->aBulSize;
 }
 
-void Outliner::ImplCheckParagraphs( sal_uInt16 nStart, sal_uInt16 nEnd )
+void Outliner::ImplCheckParagraphs( sal_uInt32 nStart, sal_uInt32 nEnd )
 {
 	DBG_CHKTHIS( Outliner, 0 );
 
     // --> OD 2009-03-10 #i100014#
     // assure that the following for-loop does not loop forever
-    for ( sal_uInt16 n = nStart; n < nEnd; n++ )
+    for ( sal_uInt32 n = nStart; n < nEnd; n++ )
     // <--
 	{
 		Paragraph* pPara = pParaList->GetParagraph( n );
@@ -1605,14 +1605,14 @@ void Outliner::SetRefDevice( OutputDevice* pRefDev )
 {
 	DBG_CHKTHIS(Outliner,0);
 	pEditEngine->SetRefDevice( pRefDev );
-	for ( sal_uInt16 n = (sal_uInt16) pParaList->GetParagraphCount(); n; )
+	for ( sal_uInt32 n = pParaList->GetParagraphCount(); n; )
 	{
 		Paragraph* pPara = pParaList->GetParagraph( --n );
 		pPara->Invalidate();
 	}
 }
 
-void Outliner::ParaAttribsChanged( sal_uInt16 nPara )
+void Outliner::ParaAttribsChanged( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS(Outliner,0);
 
@@ -1645,8 +1645,8 @@ void Outliner::StyleSheetChanged( SfxStyleSheet* pStyle )
 	// gejagt, die die besagte Vorlage haben, warum?
 	// => Eigentlich kann sich nur die Bullet-Repraesentation aendern...
 
-	sal_uInt16 nParas = (sal_uInt16)pParaList->GetParagraphCount();
-	for( sal_uInt16 nPara = 0; nPara < nParas; nPara++ )
+	sal_uInt32 nParas = pParaList->GetParagraphCount();
+	for( sal_uInt32 nPara = 0; nPara < nParas; nPara++ )
 	{
 		if ( pEditEngine->GetStyleSheet( nPara ) == pStyle )
 		{
@@ -1659,7 +1659,7 @@ void Outliner::StyleSheetChanged( SfxStyleSheet* pStyle )
 	}
 }
 
-Rectangle Outliner::ImpCalcBulletArea( sal_uInt16 nPara, sal_Bool bAdjust, sal_Bool bReturnPaperPos )
+Rectangle Outliner::ImpCalcBulletArea( sal_uInt32 nPara, sal_Bool bAdjust, sal_Bool bReturnPaperPos )
 {
 	// Bullet-Bereich innerhalb des Absatzes...
 	Rectangle aBulletArea;
@@ -1767,7 +1767,7 @@ void Outliner::ExpandHdl()
 	aExpandHdl.Call( this );
 }
 
-EBulletInfo Outliner::GetBulletInfo( sal_uInt16 nPara )
+EBulletInfo Outliner::GetBulletInfo( sal_uInt32 nPara )
 {
     EBulletInfo aInfo;
 
@@ -1805,8 +1805,8 @@ XubString Outliner::GetText( Paragraph* pParagraph, sal_uLong nCount ) const
 	DBG_CHKTHIS(Outliner,0);
 
 	XubString aText;
-	sal_uInt16 nStartPara = (sal_uInt16) pParaList->GetAbsPos( pParagraph );
-	for ( sal_uInt16 n = 0; n < nCount; n++ )
+	sal_uInt32 nStartPara = pParaList->GetAbsPos( pParagraph );
+	for ( sal_uInt32 n = 0; n < nCount; n++ )
 	{
 		aText += pEditEngine->GetText( nStartPara + n );
 		if ( (n+1) < (sal_uInt16)nCount )
@@ -1826,8 +1826,8 @@ void Outliner::Remove( Paragraph* pPara, sal_uLong nParaCount )
 	}
 	else
 	{
-		for( sal_uInt16 n = 0; n < (sal_uInt16)nParaCount; n++ )
-			pEditEngine->RemoveParagraph( (sal_uInt16) nPos );
+		for( sal_uInt32 n = 0; n < nParaCount; n++ )
+			pEditEngine->RemoveParagraph( nPos );
 	}
 }
 
@@ -1841,7 +1841,7 @@ void Outliner::StripPortions()
 
 // #101498#
 void Outliner::DrawingText( const Point& rStartPos, const XubString& rText, sal_uInt16 nTextStart, sal_uInt16 nTextLen, const sal_Int32* pDXArray,const SvxFont& rFont,
-    sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
+    sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
     const EEngineData::WrongSpellVector* pWrongSpellVector,
     const SvxFieldData* pFieldData,
     bool bEndOfLine,
@@ -1879,7 +1879,7 @@ sal_Bool Outliner::ImpCanDeleteSelectedPages( OutlinerView* pCurView, sal_uInt16
 	return (sal_Bool)RemovingPagesHdl( pCurView );
 }
 
-SfxItemSet Outliner::GetParaAttribs( sal_uInt16 nPara )
+SfxItemSet Outliner::GetParaAttribs( sal_uInt32 nPara )
 {
 	DBG_CHKTHIS(Outliner,0);
 	return pEditEngine->GetParaAttribs( nPara );
@@ -1889,8 +1889,8 @@ IMPL_LINK( Outliner, ParaVisibleStateChangedHdl, Paragraph*, pPara )
 {
 	DBG_CHKTHIS(Outliner,0);
 
-	sal_uLong nPara = pParaList->GetAbsPos( pPara );
-	pEditEngine->ShowParagraph( (sal_uInt16)nPara, pPara->IsVisible() );
+	sal_uInt32 nPara = pParaList->GetAbsPos( pPara );
+	pEditEngine->ShowParagraph( nPara, pPara->IsVisible() );
 
 	return 0;
 }
@@ -1926,9 +1926,9 @@ IMPL_LINK( Outliner, EndMovingParagraphsHdl, MoveParagraphsInfo*, pInfos )
 	DBG_CHKTHIS(Outliner,0);
 
 	pParaList->MoveParagraphs( pInfos->nStartPara, pInfos->nDestPara, pInfos->nEndPara - pInfos->nStartPara + 1 );
-	sal_uInt16 nChangesStart = Min( pInfos->nStartPara, pInfos->nDestPara );
-	sal_uInt16 nParas = (sal_uInt16)pParaList->GetParagraphCount();
-	for ( sal_uInt16 n = nChangesStart; n < nParas; n++ )
+	sal_uInt32 nChangesStart = Min( pInfos->nStartPara, pInfos->nDestPara );
+	sal_uInt32 nParas = pParaList->GetParagraphCount();
+	for ( sal_uInt32 n = nChangesStart; n < nParas; n++ )
 		ImplCalcBulletText( n, sal_False, sal_False );
 
 	if( !IsInUndo() )
@@ -1951,7 +1951,7 @@ static bool isSameNumbering( const SvxNumberFormat& rN1, const SvxNumberFormat&
     return true;
 }
 
-sal_uInt16 Outliner::ImplGetNumbering( sal_uInt16 nPara, const SvxNumberFormat* pParaFmt )
+sal_uInt16 Outliner::ImplGetNumbering( sal_uInt32 nPara, const SvxNumberFormat* pParaFmt )
 {
     sal_uInt16 nNumber = pParaFmt->GetStart() - 1;
 
@@ -2005,7 +2005,7 @@ sal_uInt16 Outliner::ImplGetNumbering( sal_uInt16 nPara, const SvxNumberFormat*
     return nNumber;
 }
 
-void Outliner::ImplCalcBulletText( sal_uInt16 nPara, sal_Bool bRecalcLevel, sal_Bool bRecalcChilds )
+void Outliner::ImplCalcBulletText( sal_uInt32 nPara, sal_Bool bRecalcLevel, sal_Bool bRecalcChilds )
 {
 	DBG_CHKTHIS(Outliner,0);
 
@@ -2085,14 +2085,14 @@ void Outliner::SetFlatMode( sal_Bool bFlat )
 
 	if( bFlat != pEditEngine->IsFlatMode() )
 	{
-		for ( sal_uInt16 nPara = (sal_uInt16)pParaList->GetParagraphCount(); nPara; )
+		for ( sal_uInt32 nPara = pParaList->GetParagraphCount(); nPara; )
 			pParaList->GetParagraph( --nPara )->aBulSize.Width() = -1;
 
 		pEditEngine->SetFlatMode( bFlat );
 	}
 }
 
-String Outliner::ImplGetBulletText( sal_uInt16 nPara )
+String Outliner::ImplGetBulletText( sal_uInt32 nPara )
 {
         String aRes;
 	Paragraph* pPara = pParaList->GetParagraph( nPara );
@@ -2107,7 +2107,7 @@ String Outliner::ImplGetBulletText( sal_uInt16 nPara )
 }
 
 // this is needed for StarOffice Api
-void Outliner::SetLevelDependendStyleSheet( sal_uInt16 nPara )
+void Outliner::SetLevelDependendStyleSheet( sal_uInt32 nPara )
 {
 	SfxItemSet aOldAttrs( pEditEngine->GetParaAttribs( nPara ) );
 	ImplSetLevelDependendStyleSheet( nPara );
@@ -2195,7 +2195,7 @@ void Outliner::SetParaFlag( Paragraph* pPara,  sal_uInt16 nFlag )
     if( pPara && !pPara->HasFlag( nFlag ) )
     {
         if( IsUndoEnabled() && !IsInUndo() )
-            InsertUndo( new OutlinerUndoChangeParaFlags( this, (sal_uInt16)GetAbsPos( pPara ), pPara->nFlags, pPara->nFlags|nFlag ) );
+            InsertUndo( new OutlinerUndoChangeParaFlags( this, GetAbsPos( pPara ), pPara->nFlags, pPara->nFlags|nFlag ) );
 
         pPara->SetFlag( nFlag );
     }
@@ -2206,7 +2206,7 @@ void Outliner::RemoveParaFlag( Paragraph* pPara, sal_uInt16 nFlag )
     if( pPara && pPara->HasFlag( nFlag ) )
     {
         if( IsUndoEnabled() && !IsInUndo() )
-            InsertUndo( new OutlinerUndoChangeParaFlags( this, (sal_uInt16)GetAbsPos( pPara ), pPara->nFlags, pPara->nFlags & ~nFlag ) );
+            InsertUndo( new OutlinerUndoChangeParaFlags( this, GetAbsPos( pPara ), pPara->nFlags, pPara->nFlags & ~nFlag ) );
 
         pPara->RemoveFlag( nFlag );
     }
diff --git a/main/editeng/source/outliner/outlobj.cxx b/main/editeng/source/outliner/outlobj.cxx
index d2e110689f..9ac8795e10 100644
--- a/main/editeng/source/outliner/outlobj.cxx
+++ b/main/editeng/source/outliner/outlobj.cxx
@@ -194,7 +194,7 @@ sal_uInt32 OutlinerParaObject::Count() const
     return mpImplOutlinerParaObject->maParagraphDataVector.size();
 }
 
-sal_Int16 OutlinerParaObject::GetDepth(sal_uInt16 nPara) const
+sal_Int16 OutlinerParaObject::GetDepth(sal_uInt32 nPara) const
 {
     if(nPara < mpImplOutlinerParaObject->maParagraphDataVector.size())
     {
diff --git a/main/editeng/source/outliner/outlundo.cxx b/main/editeng/source/outliner/outlundo.cxx
index f45a3e0faf..377e1d5f0f 100644
--- a/main/editeng/source/outliner/outlundo.cxx
+++ b/main/editeng/source/outliner/outlundo.cxx
@@ -44,7 +44,7 @@ OutlinerUndoBase::OutlinerUndoBase( sal_uInt16 _nId, Outliner* pOutliner )
 	mpOutliner = pOutliner;
 }
 
-OutlinerUndoChangeParaFlags::OutlinerUndoChangeParaFlags( Outliner* pOutliner, sal_uInt16 nPara, sal_uInt16 nOldFlags, sal_uInt16 nNewFlags )
+OutlinerUndoChangeParaFlags::OutlinerUndoChangeParaFlags( Outliner* pOutliner, sal_uInt32 nPara, sal_uInt16 nOldFlags, sal_uInt16 nNewFlags )
 : OutlinerUndoBase( OLUNDO_DEPTH, pOutliner )
 {
 	mnPara = nPara;
@@ -77,7 +77,7 @@ void OutlinerUndoChangeParaFlags::ImplChangeFlags( sal_uInt16 nFlags )
 	}
 }
 
-OutlinerUndoChangeParaNumberingRestart::OutlinerUndoChangeParaNumberingRestart( Outliner* pOutliner, sal_uInt16 nPara,
+OutlinerUndoChangeParaNumberingRestart::OutlinerUndoChangeParaNumberingRestart( Outliner* pOutliner, sal_uInt32 nPara,
         sal_Int16 nOldNumberingStartValue, sal_Int16 nNewNumberingStartValue,
         sal_Bool  bOldParaIsNumberingRestart, sal_Bool bNewParaIsNumberingRestart )
 : OutlinerUndoBase( OLUNDO_DEPTH, pOutliner )
@@ -107,7 +107,7 @@ void OutlinerUndoChangeParaNumberingRestart::ImplApplyData( const ParaRestartDat
     pOutliner->SetParaIsNumberingRestart( mnPara, rData.mbParaIsNumberingRestart );
 }
 
-OutlinerUndoChangeDepth::OutlinerUndoChangeDepth( Outliner* pOutliner, sal_uInt16 nPara, sal_Int16 nOldDepth, sal_Int16 nNewDepth )
+OutlinerUndoChangeDepth::OutlinerUndoChangeDepth( Outliner* pOutliner, sal_uInt32 nPara, sal_Int16 nOldDepth, sal_Int16 nNewDepth )
 	: OutlinerUndoBase( OLUNDO_DEPTH, pOutliner )
 {
 	mnPara = nPara;
@@ -131,7 +131,7 @@ void OutlinerUndoChangeDepth::Repeat()
 }
 
 
-OutlinerUndoCheckPara::OutlinerUndoCheckPara( Outliner* pOutliner, sal_uInt16 nPara )
+OutlinerUndoCheckPara::OutlinerUndoCheckPara( Outliner* pOutliner, sal_uInt32 nPara )
 	: OutlinerUndoBase( OLUNDO_DEPTH, pOutliner )
 {
 	mnPara = nPara;
@@ -189,7 +189,7 @@ void OLUndoExpand::Restore( sal_Bool bUndo )
 		bExpand = sal_True;
 	if( !pParas )
 	{
-		pPara = pOutliner->GetParagraph( (sal_uLong)nCount );
+		pPara = pOutliner->GetParagraph( nCount );
 		if( bExpand )
 			pOutliner->Expand( pPara );
 		else
@@ -197,9 +197,9 @@ void OLUndoExpand::Restore( sal_Bool bUndo )
 	}
 	else
 	{
-		for( sal_uInt16 nIdx = 0; nIdx < nCount; nIdx++ )
+		for( sal_uInt32 nIdx = 0; nIdx < nCount; nIdx++ )
 		{
-			pPara = pOutliner->GetParagraph( (sal_uLong)(pParas[nIdx]) );
+			pPara = pOutliner->GetParagraph( pParas[nIdx] );
 			if( bExpand )
 				pOutliner->Expand( pPara );
 			else
diff --git a/main/editeng/source/outliner/outlundo.hxx b/main/editeng/source/outliner/outlundo.hxx
index ef73ebb35f..d9323ecac9 100644
--- a/main/editeng/source/outliner/outlundo.hxx
+++ b/main/editeng/source/outliner/outlundo.hxx
@@ -42,14 +42,14 @@ public:
 class OutlinerUndoChangeParaFlags : public OutlinerUndoBase
 {
 private:
-	sal_uInt16		mnPara;
+	sal_uInt32		mnPara;
 	sal_uInt16		mnOldFlags;
 	sal_uInt16		mnNewFlags;
 	
 	void ImplChangeFlags( sal_uInt16 nFlags );
 
 public:
-	OutlinerUndoChangeParaFlags( Outliner* pOutliner, sal_uInt16 nPara, sal_uInt16 nOldDepth, sal_uInt16 nNewDepth );
+	OutlinerUndoChangeParaFlags( Outliner* pOutliner, sal_uInt32 nPara, sal_uInt16 nOldDepth, sal_uInt16 nNewDepth );
 
 	virtual void	Undo();
 	virtual void	Redo();
@@ -58,7 +58,7 @@ public:
 class OutlinerUndoChangeParaNumberingRestart : public OutlinerUndoBase
 {
 private:
-    sal_uInt16		mnPara;
+    sal_uInt32		mnPara;
     
     struct ParaRestartData
     {
@@ -71,7 +71,7 @@ private:
 
     void ImplApplyData( const ParaRestartData& rData );
 public:
-    OutlinerUndoChangeParaNumberingRestart( Outliner* pOutliner, sal_uInt16 nPara,
+    OutlinerUndoChangeParaNumberingRestart( Outliner* pOutliner, sal_uInt32 nPara,
         sal_Int16 nOldNumberingStartValue, sal_Int16 mnNewNumberingStartValue,
         sal_Bool  nOldbParaIsNumberingRestart, sal_Bool nbNewParaIsNumberingRestart );
 
@@ -83,12 +83,12 @@ class OutlinerUndoChangeDepth : public OutlinerUndoBase
 {
 	using SfxUndoAction::Repeat;
 private:
-	sal_uInt16 			mnPara;
+	sal_uInt32 			mnPara;
 	sal_Int16		mnOldDepth;
 	sal_Int16		mnNewDepth;
 
 public:
-					OutlinerUndoChangeDepth( Outliner* pOutliner, sal_uInt16 nPara, sal_Int16 nOldDepth, sal_Int16 nNewDepth );
+					OutlinerUndoChangeDepth( Outliner* pOutliner, sal_uInt32 nPara, sal_Int16 nOldDepth, sal_Int16 nNewDepth );
 
 	virtual void	Undo();
 	virtual void	Redo();
@@ -102,10 +102,10 @@ class OutlinerUndoCheckPara : public OutlinerUndoBase
 {
 	using SfxUndoAction::Repeat;
 private:
-	sal_uInt16 			mnPara;
+	sal_uInt32 			mnPara;
 
 public:
-					OutlinerUndoCheckPara( Outliner* pOutliner, sal_uInt16 nPara );
+					OutlinerUndoCheckPara( Outliner* pOutliner, sal_uInt32 nPara );
 
 	virtual void	Undo();
 	virtual void	Redo();
@@ -128,9 +128,9 @@ public:
 	virtual void Redo();
 	virtual void Repeat();
 
-	sal_uInt16* pParas;  // 0 == nCount enthaelt Absatznummer
+	sal_uInt32* pParas;  // 0 == nCount enthaelt Absatznummer
 	Outliner* pOutliner;
-	sal_uInt16 nCount;
+	sal_uInt32 nCount;
 };
 
 #endif
diff --git a/main/editeng/source/outliner/outlvw.cxx b/main/editeng/source/outliner/outlvw.cxx
index f1a0c600ba..36a99b54c5 100644
--- a/main/editeng/source/outliner/outlvw.cxx
+++ b/main/editeng/source/outliner/outlvw.cxx
@@ -230,12 +230,12 @@ sal_Bool OutlinerView::PostKeyEvent( const KeyEvent& rKEvt )
 							if( nChilds && !pOwner->pParaList->HasVisibleChilds(pPara))
 							{
 								pOwner->UndoActionStart( OLUNDO_INSERT );
-								sal_uLong nTemp = aSel.nEndPara;
+								sal_uInt32 nTemp = aSel.nEndPara;
 								nTemp += nChilds;
 								nTemp++; // einfuegen ueber naechstem Non-Child
 								pOwner->Insert( String(),nTemp,pPara->GetDepth());
 								// Cursor positionieren
-								ESelection aTmpSel((sal_uInt16)nTemp,0,(sal_uInt16)nTemp,0);
+								ESelection aTmpSel(nTemp,0,nTemp,0);
 								pEditView->SetSelection( aTmpSel );
 								pEditView->ShowCursor( sal_True, sal_True );
 								pOwner->UndoActionEnd( OLUNDO_INSERT );
@@ -253,7 +253,7 @@ sal_Bool OutlinerView::PostKeyEvent( const KeyEvent& rKEvt )
 						pOwner->Insert( String(), nTemp, pPara->GetDepth()+1 );
 
 						// Cursor positionieren
-						ESelection aTmpSel((sal_uInt16)nTemp,0,(sal_uInt16)nTemp,0);
+						ESelection aTmpSel(nTemp,0,nTemp,0);
 						pEditView->SetSelection( aTmpSel );
 						pEditView->ShowCursor( sal_True, sal_True );
 						pOwner->UndoActionEnd( OLUNDO_INSERT );
@@ -344,18 +344,18 @@ sal_Bool __EXPORT OutlinerView::MouseButtonDown( const MouseEvent& rMEvt )
     pEditView->GetWindow()->SetPointer( aPointer );
 
 	MouseTarget eTarget;
-	sal_uLong nPara = ImpCheckMousePos( rMEvt.GetPosPixel(), eTarget );
+	sal_uInt32 nPara = ImpCheckMousePos( rMEvt.GetPosPixel(), eTarget );
     if ( eTarget == MouseBullet )
 	{
 		Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
 		sal_Bool bHasChilds = (pPara && pOwner->pParaList->HasChilds(pPara));
 		if( rMEvt.GetClicks() == 1 )
 		{
-			sal_uLong nEndPara = nPara;
+			sal_uInt32 nEndPara = nPara;
 			if ( bHasChilds && pOwner->pParaList->HasVisibleChilds(pPara) )
 				nEndPara += pOwner->pParaList->GetChildCount( pPara );
 			// umgekehrt rum selektieren, damit EditEngine nicht scrollt
-			ESelection aSel((sal_uInt16)nEndPara, 0xffff,(sal_uInt16)nPara, 0 );
+			ESelection aSel(nEndPara, EE_INDEX_MAX, nPara, 0 );
 			pEditView->SetSelection( aSel );
         }
 		else if( rMEvt.GetClicks() == 2 && bHasChilds )
@@ -442,16 +442,16 @@ void OutlinerView::ImpPaintDDCursor()
 	}
 	else
 	{
-		sal_uLong nPara = nDDCurPara;
+		sal_uInt32 nPara = nDDCurPara;
 		if ( nDDCurPara == LIST_APPEND )
 		{
 			Paragraph* pTemp = pOwner->pParaList->LastVisible();
 			nPara = pOwner->pParaList->GetAbsPos( pTemp );
 		}
-		aStartPointWin = pEditView->GetWindowPosTopLeft((sal_uInt16) nPara );
+		aStartPointWin = pEditView->GetWindowPosTopLeft( nPara );
 		if ( nDDCurPara == LIST_APPEND )
 		{
-			long nHeight = pOwner->pEditEngine->GetTextHeight((sal_uInt16)nPara );
+			long nHeight = pOwner->pEditEngine->GetTextHeight( nPara );
 			aStartPointWin.Y() += nHeight;
 		}
 		aStartPointWin.X() = aOutputArWin.Left();
@@ -477,8 +477,8 @@ sal_uLong OutlinerView::ImpGetInsertionPara( const Point& rPosPixel  )
 	else
 	{
 		Point aPosWin = pEditView->GetWindow()->PixelToLogic( rPosPixel );
-		Point aParaPosWin = pEditView->GetWindowPosTopLeft((sal_uInt16)nCurPara);
-		long nHeightRef = pOwner->pEditEngine->GetTextHeight((sal_uInt16)nCurPara);
+		Point aParaPosWin = pEditView->GetWindowPosTopLeft(nCurPara);
+		long nHeightRef = pOwner->pEditEngine->GetTextHeight(nCurPara);
 		long nParaYOffs = aPosWin.Y() - aParaPosWin.Y();
 
 		if ( nParaYOffs > nHeightRef / 2  )
@@ -496,7 +496,7 @@ void OutlinerView::ImpToggleExpand( Paragraph* pPara )
 {
 	DBG_CHKTHIS(OutlinerView,0);
 
-	sal_uInt16 nPara = (sal_uInt16) pOwner->pParaList->GetAbsPos( pPara );
+	sal_uInt32 nPara = pOwner->pParaList->GetAbsPos( pPara );
 	pEditView->SetSelection( ESelection( nPara, 0, nPara, 0 ) );
 	ImplExpandOrCollaps( nPara, nPara, !pOwner->pParaList->HasVisibleChilds( pPara ) );
 	pEditView->ShowCursor();
@@ -520,13 +520,13 @@ sal_uLong OutlinerView::Select( Paragraph* pParagraph, sal_Bool bSelect,
 	sal_uLong nPara = pOwner->pParaList->GetAbsPos( pParagraph );
 	sal_uInt16 nEnd = 0;
 	if ( bSelect )
-		nEnd = 0xffff;
+		nEnd = EE_INDEX_MAX;
 
 	sal_uLong nChildCount = 0;
 	if ( bWithChilds )
 		nChildCount = pOwner->pParaList->GetChildCount( pParagraph );
 
-	ESelection aSel( (sal_uInt16)nPara, 0,(sal_uInt16)(nPara+nChildCount), nEnd );
+	ESelection aSel( nPara, 0, nPara+nChildCount, nEnd );
 	pEditView->SetSelection( aSel );
 	return nChildCount+1;
 }
@@ -547,7 +547,7 @@ void OutlinerView::SetAttribs( const SfxItemSet& rAttrs )
 	pEditView->SetAttribs( rAttrs );
 
 	// Bullet-Texte aktualisieren
-	for( sal_uInt16 nPara= aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+	for( sal_uInt32 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
 	{
 		pOwner->ImplCheckNumBulletItem( nPara );
 		pOwner->ImplCalcBulletText( nPara, sal_False, sal_False );
@@ -576,7 +576,7 @@ ParaRange OutlinerView::ImpGetSelectedParagraphs( sal_Bool bIncludeHiddenChilds
 		Paragraph* pLast = pOwner->pParaList->GetParagraph( aParas.nEndPara );
 		if ( pOwner->pParaList->HasHiddenChilds( pLast ) )
 			aParas.nEndPara =
-                sal::static_int_cast< sal_uInt16 >(
+                sal::static_int_cast< sal_uInt32 >(
                     aParas.nEndPara +
                     pOwner->pParaList->GetChildCount( pLast ) );
 	}
@@ -608,7 +608,7 @@ void OutlinerView::Indent( short nDiff )
 	sal_Int16 nMinDepth = -1;	// Optimierung: Nicht unnoetig viele Absatze neu berechnen
 
 	ParaRange aSel = ImpGetSelectedParagraphs( sal_True );
-	for ( sal_uInt16 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+	for ( sal_uInt32 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
 	{
 		Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
 
@@ -711,8 +711,8 @@ void OutlinerView::Indent( short nDiff )
 	// pOwner->ImpSetBulletTextsFrom( aSel.nStartPara+1, nMinDepth );
 	// Wird jetzt direkt in Schleife mit ImplCalcBulletText() erledigt.
 	// Jetzt fehlen nur noch die folgenden Ansaetze, die davon betroffen sind.
-	sal_uInt16 nParas = (sal_uInt16)pOwner->pParaList->GetParagraphCount();
-	for ( sal_uInt16 n = aSel.nEndPara+1; n < nParas; n++ )
+	sal_uInt32 nParas = pOwner->pParaList->GetParagraphCount();
+	for ( sal_uInt32 n = aSel.nEndPara+1; n < nParas; n++ )
 	{
 		Paragraph* pPara = pOwner->pParaList->GetParagraph( n );
 		if ( pPara->GetDepth() < nMinDepth )
@@ -740,11 +740,11 @@ sal_Bool OutlinerView::AdjustHeight( long nDY )
 void OutlinerView::AdjustDepth( Paragraph* pPara, short nDX, sal_Bool bWithChilds)
 {
 	DBG_CHKTHIS(OutlinerView,0);
-	sal_uLong nStartPara = pOwner->pParaList->GetAbsPos( pPara );
-	sal_uLong nEndPara = nStartPara;
+	sal_uInt32 nStartPara = pOwner->pParaList->GetAbsPos( pPara );
+	sal_uInt32 nEndPara = nStartPara;
 	if ( bWithChilds )
 		nEndPara += pOwner->pParaList->GetChildCount( pPara );
-	ESelection aSel((sal_uInt16)nStartPara, 0,(sal_uInt16)nEndPara, 0xffff );
+	ESelection aSel(nStartPara, 0, nEndPara, EE_INDEX_MAX );
 	pEditView->SetSelection( aSel );
 	AdjustDepth( nDX );
 }
@@ -752,11 +752,11 @@ void OutlinerView::AdjustDepth( Paragraph* pPara, short nDX, sal_Bool bWithChild
 void OutlinerView::AdjustHeight( Paragraph* pPara, long nDY, sal_Bool bWithChilds )
 {
 	DBG_CHKTHIS(OutlinerView,0);
-	sal_uLong nStartPara = pOwner->pParaList->GetAbsPos( pPara );
-	sal_uLong nEndPara = nStartPara;
+	sal_uInt32 nStartPara = pOwner->pParaList->GetAbsPos( pPara );
+	sal_uInt32 nEndPara = nStartPara;
 	if ( bWithChilds )
 		nEndPara += pOwner->pParaList->GetChildCount( pPara );
-	ESelection aSel( (sal_uInt16)nStartPara, 0, (sal_uInt16)nEndPara, 0xffff );
+	ESelection aSel( nStartPara, 0, nEndPara, EE_INDEX_MAX );
 	pEditView->SetSelection( aSel );
 	AdjustHeight( nDY );
 }
@@ -915,17 +915,17 @@ void OutlinerView::Collapse()
 void OutlinerView::ExpandAll()
 {
 	DBG_CHKTHIS( OutlinerView, 0 );
-	ImplExpandOrCollaps( 0, (sal_uInt16)(pOwner->pParaList->GetParagraphCount()-1), sal_True );
+	ImplExpandOrCollaps( 0, pOwner->pParaList->GetParagraphCount()-1, sal_True );
 }
 
 
 void OutlinerView::CollapseAll()
 {
 	DBG_CHKTHIS(OutlinerView,0);
-	ImplExpandOrCollaps( 0, (sal_uInt16)(pOwner->pParaList->GetParagraphCount()-1), sal_False );
+	ImplExpandOrCollaps( 0, pOwner->pParaList->GetParagraphCount()-1, sal_False );
 }
 
-void OutlinerView::ImplExpandOrCollaps( sal_uInt16 nStartPara, sal_uInt16 nEndPara, sal_Bool bExpand )
+void OutlinerView::ImplExpandOrCollaps( sal_uInt32 nStartPara, sal_uInt32 nEndPara, sal_Bool bExpand )
 {
 	DBG_CHKTHIS( OutlinerView, 0 );
 
@@ -936,7 +936,7 @@ void OutlinerView::ImplExpandOrCollaps( sal_uInt16 nStartPara, sal_uInt16 nEndPa
 	if( bUndo )
 		pOwner->UndoActionStart( bExpand ? OLUNDO_EXPAND : OLUNDO_COLLAPSE );
 
-	for ( sal_uInt16 nPara = nStartPara; nPara <= nEndPara; nPara++ )
+	for ( sal_uInt32 nPara = nStartPara; nPara <= nEndPara; nPara++ )
 	{
 		Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
 		sal_Bool bDone = bExpand ? pOwner->Expand( pPara ) : pOwner->Collapse( pPara );
@@ -992,9 +992,9 @@ void OutlinerView::InsertText( const OutlinerParaObject& rParaObj )
 	pOwner->UndoActionStart( OLUNDO_INSERT );
 
 	pOwner->pEditEngine->SetUpdateMode( sal_False );
-	sal_uLong nStart, nParaCount;
+	sal_uInt32 nStart, nParaCount;
 	nParaCount = pOwner->pEditEngine->GetParagraphCount();
-	sal_uInt16 nSize = ImpInitPaste( nStart );
+	sal_uInt32 nSize = ImpInitPaste( nStart );
 	pEditView->InsertText( rParaObj.GetTextObject() );
 	ImpPasted( nStart, nParaCount, nSize);
 	pEditView->SetEditEngineUpdateMode( sal_True );
@@ -1032,9 +1032,9 @@ void OutlinerView::PasteSpecial()
 
 		if ( pOwner->ImplGetOutlinerMode() == OUTLINERMODE_OUTLINEOBJECT )
 		{
-        	const sal_uInt16 nParaCount = pOwner->pEditEngine->GetParagraphCount();
+        	const sal_uInt32 nParaCount = pOwner->pEditEngine->GetParagraphCount();
 
-		    for( sal_uInt16 nPara = 0; nPara < nParaCount; nPara++ )
+		    for( sal_uInt32 nPara = 0; nPara < nParaCount; nPara++ )
 			    pOwner->ImplSetLevelDependendStyleSheet( nPara );
 	    }
 
@@ -1050,7 +1050,7 @@ List* OutlinerView::CreateSelectionList()
 
 	ParaRange aParas = ImpGetSelectedParagraphs( sal_True );
 	List* pSelList = new List;
-	for ( sal_uInt16 nPara = aParas.nStartPara; nPara <= aParas.nEndPara; nPara++ )
+	for ( sal_uInt32 nPara = aParas.nStartPara; nPara <= aParas.nEndPara; nPara++ )
 	{
 		Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
 		pSelList->Insert( pPara, LIST_APPEND );
@@ -1070,7 +1070,7 @@ void OutlinerView::SetStyleSheet( SfxStyleSheet* pStyle )
 	pEditView->SetStyleSheet( pStyle );
 
 	ParaRange aSel = ImpGetSelectedParagraphs( sal_True );
-	for( sal_uInt16 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+	for( sal_uInt32 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
 	{
 		pOwner->ImplCheckNumBulletItem( nPara );
 		pOwner->ImplCalcBulletText( nPara, sal_False, sal_False );
@@ -1102,29 +1102,27 @@ Pointer OutlinerView::GetPointer( const Point& rPosPixel )
 }
 
 
-sal_uInt16 OutlinerView::ImpInitPaste( sal_uLong& rStart )
+sal_uInt32 OutlinerView::ImpInitPaste( sal_uInt32& rStart )
 {
 	DBG_CHKTHIS(OutlinerView,0);
 	pOwner->bPasting = sal_True;
 	ESelection aSelection( pEditView->GetSelection() );
 	aSelection.Adjust();
 	rStart = aSelection.nStartPara;
-	sal_uInt16 nSize = aSelection.nEndPara - aSelection.nStartPara + 1;
+	sal_uInt32 nSize = aSelection.nEndPara - aSelection.nStartPara + 1;
 	return nSize;
 }
 
 
-void OutlinerView::ImpPasted( sal_uLong nStart, sal_uLong nPrevParaCount, sal_uInt16 nSize)
+void OutlinerView::ImpPasted( sal_uInt32 nStart, sal_uInt32 nPrevParaCount, sal_uInt32 nSize)
 {
 	DBG_CHKTHIS(OutlinerView,0);
 	pOwner->bPasting = sal_False;
-	sal_uLong nCurParaCount = (sal_uLong)pOwner->pEditEngine->GetParagraphCount();
+	sal_uInt32 nCurParaCount = pOwner->pEditEngine->GetParagraphCount();
 	if( nCurParaCount < nPrevParaCount )
-		nSize = sal::static_int_cast< sal_uInt16 >(
-            nSize - ( nPrevParaCount - nCurParaCount ) );
+		nSize = nSize - ( nPrevParaCount - nCurParaCount );
 	else
-		nSize = sal::static_int_cast< sal_uInt16 >(
-            nSize + ( nCurParaCount - nPrevParaCount ) );
+		nSize = nSize + ( nCurParaCount - nPrevParaCount );
 	pOwner->ImpTextPasted( nStart, nSize );
 }
 
@@ -1136,14 +1134,14 @@ void OutlinerView::Command( const CommandEvent& rCEvt )
 }
 
 
-void OutlinerView::SelectRange( sal_uLong nFirst, sal_uInt16 nCount )
+void OutlinerView::SelectRange( sal_uInt32 nFirst, sal_uInt32 nCount )
 {
 	DBG_CHKTHIS(OutlinerView,0);
-	sal_uLong nLast = nFirst+nCount;
-	nCount = (sal_uInt16)pOwner->pParaList->GetParagraphCount();
+	sal_uInt32 nLast = nFirst+nCount;
+	nCount = pOwner->pParaList->GetParagraphCount();
 	if( nLast <= nCount )
 		nLast = nCount - 1;
-	ESelection aSel( (sal_uInt16)nFirst, 0, (sal_uInt16)nLast, 0xffff );
+	ESelection aSel( nFirst, 0, nLast, EE_INDEX_MAX );
 	pEditView->SetSelection( aSel );
 }
 
@@ -1160,7 +1158,7 @@ sal_uInt16 OutlinerView::ImpCalcSelectedPages( sal_Bool bIncludeFirstSelected )
 	sal_uInt16 nStartPara = aSel.nStartPara;
 	if ( !bIncludeFirstSelected )
 		nStartPara++;	// alle nach StartPara kommenden Absaetze werden geloescht
-	for ( sal_uInt16 nPara = nStartPara; nPara <= aSel.nEndPara; nPara++ )
+	for ( sal_uInt32 nPara = nStartPara; nPara <= aSel.nEndPara; nPara++ )
 	{
 		Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
 		DBG_ASSERT(pPara, "ImpCalcSelectedPages: ungueltige Selection? ");
@@ -1196,7 +1194,7 @@ void OutlinerView::ToggleBullets()
     sal_Int16 nNewDepth = -2;
     const SvxNumRule* pDefaultBulletNumRule = 0;
 
-    for ( sal_uInt16 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+    for ( sal_uInt32 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
     {
         Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
         DBG_ASSERT(pPara, "OutlinerView::ToggleBullets(), illegal selection?");
@@ -1248,7 +1246,7 @@ void OutlinerView::ToggleBullets()
         }
     }
 
-    const sal_uInt16 nParaCount = (sal_uInt16) (pOwner->pParaList->GetParagraphCount());
+    const sal_uInt32 nParaCount = pOwner->pParaList->GetParagraphCount();
     pOwner->ImplCheckParagraphs( aSel.nStartPara, nParaCount );
     pOwner->pEditEngine->QuickMarkInvalid( ESelection( aSel.nStartPara, 0, nParaCount, 0 ) );
 
@@ -1307,7 +1305,7 @@ void OutlinerView::EnableBullets()
     const bool bUpdate = pOwner->pEditEngine->GetUpdateMode();
     pOwner->pEditEngine->SetUpdateMode( sal_False );
 
-    for ( sal_uInt16 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+    for ( sal_uInt32 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
     {
         Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
         DBG_ASSERT(pPara, "OutlinerView::EnableBullets(), illegal selection?");
@@ -1318,7 +1316,7 @@ void OutlinerView::EnableBullets()
         }
     }
 
-    sal_uInt16 nParaCount = (sal_uInt16) (pOwner->pParaList->GetParagraphCount());
+    sal_uInt32 nParaCount = pOwner->pParaList->GetParagraphCount();
     pOwner->ImplCheckParagraphs( aSel.nStartPara, nParaCount );
     pOwner->pEditEngine->QuickMarkInvalid( ESelection( aSel.nStartPara, 0, nParaCount, 0 ) );
 
@@ -1343,8 +1341,8 @@ void OutlinerView::ApplyBulletsNumbering(
     const sal_Bool bUpdate = pOwner->pEditEngine->GetUpdateMode();
     pOwner->pEditEngine->SetUpdateMode(sal_False);
 
-    sal_uInt16 nStartPara = 0;
-    sal_uInt16 nEndPara = 0;
+    sal_uInt32 nStartPara = 0;
+    sal_uInt32 nEndPara = 0;
     if ( bAtSelection )
     {
         ESelection aSel( pEditView->GetSelection() );
@@ -1358,7 +1356,7 @@ void OutlinerView::ApplyBulletsNumbering(
         nEndPara = pOwner->pParaList->GetParagraphCount() - 1;
     }
 
-    for (sal_uInt16 nPara = nStartPara; nPara <= nEndPara; nPara++)
+    for (sal_uInt32 nPara = nStartPara; nPara <= nEndPara; nPara++)
     {
         Paragraph* pPara = pOwner->pParaList->GetParagraph(nPara);
         DBG_ASSERT(pPara, "OutlinerView::ApplyBulletsNumbering(..), illegal selection?");
@@ -1451,7 +1449,7 @@ void OutlinerView::ApplyBulletsNumbering(
         }
     }
 
-    const sal_uInt16 nParaCount = (sal_uInt16) (pOwner->pParaList->GetParagraphCount());
+    const sal_uInt32 nParaCount = pOwner->pParaList->GetParagraphCount();
     pOwner->ImplCheckParagraphs( nStartPara, nParaCount );
     pOwner->pEditEngine->QuickMarkInvalid( ESelection( nStartPara, 0, nParaCount, 0 ) );
 
@@ -1466,8 +1464,8 @@ void OutlinerView::ApplyBulletsNumbering(
 void OutlinerView::SwitchOffBulletsNumbering(
     const bool bAtSelection )
 {
-    sal_uInt16 nStartPara = 0;
-    sal_uInt16 nEndPara = 0;
+    sal_uInt32 nStartPara = 0;
+    sal_uInt32 nEndPara = 0;
     if ( bAtSelection )
     {
         ESelection aSel( pEditView->GetSelection() );
@@ -1485,7 +1483,7 @@ void OutlinerView::SwitchOffBulletsNumbering(
     const bool bUpdate = pOwner->pEditEngine->GetUpdateMode();
     pOwner->pEditEngine->SetUpdateMode( sal_False );
 
-    for ( sal_uInt16 nPara = nStartPara; nPara <= nEndPara; ++nPara )
+    for ( sal_uInt32 nPara = nStartPara; nPara <= nEndPara; ++nPara )
     {
         Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
         DBG_ASSERT(pPara, "OutlinerView::SwitchOffBulletsNumbering(...), illegal paragraph index?");
@@ -1504,7 +1502,7 @@ void OutlinerView::SwitchOffBulletsNumbering(
         }
     }
 
-    const sal_uInt16 nParaCount = (sal_uInt16) (pOwner->pParaList->GetParagraphCount());
+    const sal_uInt32 nParaCount = pOwner->pParaList->GetParagraphCount();
     pOwner->ImplCheckParagraphs( nStartPara, nParaCount );
     pOwner->pEditEngine->QuickMarkInvalid( ESelection( nStartPara, 0, nParaCount, 0 ) );
 
@@ -1533,7 +1531,7 @@ void OutlinerView::RemoveAttribs( sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich
 		// Ueber alle Absaetze, und Einrueckung und Level einstellen
 		ESelection aSel = pEditView->GetSelection();
 		aSel.Adjust();
-		for ( sal_uInt16 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+		for ( sal_uInt32 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
 		{
 			Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
             pOwner->ImplInitDepth( nPara, pPara->GetDepth(), sal_False, sal_False );
@@ -1642,7 +1640,7 @@ XubString OutlinerView::GetSelected() const
 void OutlinerView::RemoveCharAttribs( sal_uLong nPara, sal_uInt16 nWhich)
 {
 	DBG_CHKTHIS(OutlinerView,0);
-	pEditView->RemoveCharAttribs( (sal_uInt16)nPara, nWhich);
+	pEditView->RemoveCharAttribs( nPara, nWhich);
 }
 
 
@@ -1785,7 +1783,7 @@ const SvxFieldItem* OutlinerView::GetFieldUnderMousePointer() const
 }
 
 
-const SvxFieldItem* OutlinerView::GetFieldUnderMousePointer( sal_uInt16& nPara, sal_uInt16& nPos ) const
+const SvxFieldItem* OutlinerView::GetFieldUnderMousePointer( sal_uInt32& nPara, sal_uInt16& nPos ) const
 {
 	DBG_CHKTHIS(OutlinerView,0);
 	return pEditView->GetFieldUnderMousePointer( nPara, nPos );
@@ -1841,7 +1839,7 @@ void OutlinerView::ExecuteSpellPopup( const Point& rPosPixel, Link* pStartDlg )
 sal_uLong OutlinerView::Read( SvStream& rInput,  const String& rBaseURL, EETextFormat eFormat, sal_Bool bSelect, SvKeyValueIterator* pHTTPHeaderAttrs )
 {
 	DBG_CHKTHIS(OutlinerView,0);
-	sal_uInt16 nOldParaCount = pEditView->GetEditEngine()->GetParagraphCount();
+	sal_uInt32 nOldParaCount = pEditView->GetEditEngine()->GetParagraphCount();
 	ESelection aOldSel = pEditView->GetSelection();
 	aOldSel.Adjust();
 
@@ -1851,10 +1849,10 @@ sal_uLong OutlinerView::Read( SvStream& rInput,  const String& rBaseURL, EETextF
 	// Mal anpassen, wenn dieses ImplInitPaste und ImpPasted-Geraffel ueberarbeitet ist.
 
 	long nParaDiff = pEditView->GetEditEngine()->GetParagraphCount() - nOldParaCount;
-	sal_uInt16 nChangesStart = aOldSel.nStartPara;
-	sal_uInt16 nChangesEnd = sal::static_int_cast< sal_uInt16 >(nChangesStart + nParaDiff + (aOldSel.nEndPara-aOldSel.nStartPara));
+	sal_uInt32 nChangesStart = aOldSel.nStartPara;
+	sal_uInt32 nChangesEnd = nChangesStart + nParaDiff + (aOldSel.nEndPara-aOldSel.nStartPara);
 
-	for ( sal_uInt16 n = nChangesStart; n <= nChangesEnd; n++ )
+	for ( sal_uInt32 n = nChangesStart; n <= nChangesEnd; n++ )
 	{
 		if ( eFormat == EE_FORMAT_BIN )
 		{
diff --git a/main/editeng/source/uno/unoedhlp.cxx b/main/editeng/source/uno/unoedhlp.cxx
index 3a0687912e..7270019f13 100644
--- a/main/editeng/source/uno/unoedhlp.cxx
+++ b/main/editeng/source/uno/unoedhlp.cxx
@@ -128,7 +128,7 @@ TYPEINIT1( SvxEditSourceHintEndPara , SvxEditSourceHint );
 
     return ::std::auto_ptr<SfxHint>( new SfxHint() );
 }
-sal_Bool SvxEditSourceHelper::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, const EditEngine& rEE, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell )
+sal_Bool SvxEditSourceHelper::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, const EditEngine& rEE, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool bInCell )
 {
 	// IA2 CWS introduced bInCell, but also did many other changes here.
 	// Need to verify implementation with AT (IA2 and ATK)
@@ -221,15 +221,15 @@ sal_Bool SvxEditSourceHelper::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt
 			SfxItemSet aCrrntSet = rEE.GetAttribs( nPara, 0, 1, GETATTRIBS_CHARATTRIBS );
 			for ( sal_Int32 nParaIdx = nPara-1; nParaIdx >= 0; nParaIdx-- )
 			{
-				sal_uInt32 nLen = rEE.GetTextLen( sal_uInt16(nParaIdx) );
+				sal_uInt32 nLen = rEE.GetTextLen( nParaIdx );
 				if ( nLen )
 				{
 					sal_uInt16 nStartIdx, nEndIdx;
-					GetAttributeRun( nStartIdx, nEndIdx, rEE, sal_uInt16(nParaIdx), sal_uInt16(nLen), sal_False );
-					SfxItemSet aSet = rEE.GetAttribs( sal_uInt16(nParaIdx), sal_uInt16(nLen-1), sal_uInt16(nLen), GETATTRIBS_CHARATTRIBS );
+					GetAttributeRun( nStartIdx, nEndIdx, rEE, nParaIdx, sal_uInt16(nLen), sal_False );
+					SfxItemSet aSet = rEE.GetAttribs( nParaIdx, sal_uInt16(nLen-1), sal_uInt16(nLen), GETATTRIBS_CHARATTRIBS );
 					if ( aSet == aCrrntSet )
 					{
-						aStartPos.nPara = sal_uInt16(nParaIdx);
+						aStartPos.nPara = nParaIdx;
 						aStartPos.nIndex = nStartIdx;
 						if ( aStartPos.nIndex != 0 )
 						{
@@ -245,15 +245,15 @@ sal_Bool SvxEditSourceHelper::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt
 			SfxItemSet aCrrntSet = rEE.GetAttribs( nPara, sal_uInt16(nCrrntParaLen-1), sal_uInt16(nCrrntParaLen), GETATTRIBS_CHARATTRIBS );
 			for ( sal_uInt32 nParaIdx = nPara+1; nParaIdx < nParaCount; nParaIdx++ )
 			{
-				sal_uInt32 nLen = rEE.GetTextLen( sal_uInt16(nParaIdx) );
+				sal_uInt32 nLen = rEE.GetTextLen( nParaIdx );
 				if ( nLen )
 				{
 					sal_uInt16 nStartIdx, nEndIdx;
-					GetAttributeRun( nStartIdx, nEndIdx, rEE, sal_uInt16(nParaIdx), 0, sal_False );
-					SfxItemSet aSet = rEE.GetAttribs( sal_uInt16(nParaIdx), 0, 1, GETATTRIBS_CHARATTRIBS );
+					GetAttributeRun( nStartIdx, nEndIdx, rEE, nParaIdx, 0, sal_False );
+					SfxItemSet aSet = rEE.GetAttribs( nParaIdx, 0, 1, GETATTRIBS_CHARATTRIBS );
 					if ( aSet == aCrrntSet )
 					{
-						aEndPos.nPara = sal_uInt16(nParaIdx);
+						aEndPos.nPara = nParaIdx;
 						aEndPos.nIndex = nEndIdx;
 						if ( aEndPos.nIndex != nLen )
 						{
@@ -266,7 +266,7 @@ sal_Bool SvxEditSourceHelper::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt
 		nStartIndex = 0;
 		if ( aStartPos.nPara > 0 )
 		{
-			for ( sal_uInt16 i = 0; i < aStartPos.nPara; i++ )
+			for ( sal_uInt32 i = 0; i < aStartPos.nPara; i++ )
 			{
 				nStartIndex += rEE.GetTextLen(i)+1;
 			}
@@ -275,7 +275,7 @@ sal_Bool SvxEditSourceHelper::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt
 		nEndIndex = 0;
 		if ( aEndPos.nPara > 0 )
 		{
-			for ( sal_uInt16 i = 0; i < aEndPos.nPara; i++ )
+			for ( sal_uInt32 i = 0; i < aEndPos.nPara; i++ )
 			{
 				nEndIndex += rEE.GetTextLen(i)+1;
 			}
diff --git a/main/editeng/source/uno/unoedprx.cxx b/main/editeng/source/uno/unoedprx.cxx
index 3f77fb6396..061fa2be47 100644
--- a/main/editeng/source/uno/unoedprx.cxx
+++ b/main/editeng/source/uno/unoedprx.cxx
@@ -72,11 +72,11 @@ public:
     ~SvxAccessibleTextIndex() {};
 
     // Get/Set current paragraph
-    void SetParagraph( sal_uInt16 nPara )
+    void SetParagraph( sal_uInt32 nPara )
     {
         mnPara = nPara;
     }
-    sal_uInt16 GetParagraph() const { return mnPara; }
+    sal_uInt32 GetParagraph() const { return mnPara; }
 
     /** Set the index in the UAA semantic
 
@@ -87,7 +87,7 @@ public:
         The text forwarder to use in the calculations
      */
     void SetIndex( sal_Int32 nIndex, const SvxTextForwarder& rTF );
-    void SetIndex( sal_uInt16 nPara, sal_Int32 nIndex, const SvxTextForwarder& rTF ) { SetParagraph(nPara); SetIndex(nIndex, rTF); }
+    void SetIndex( sal_uInt32 nPara, sal_Int32 nIndex, const SvxTextForwarder& rTF ) { SetParagraph(nPara); SetIndex(nIndex, rTF); }
     sal_Int32 GetIndex() const { return mnIndex; }
 
     /** Set the index in the edit engine semantic
@@ -102,7 +102,7 @@ public:
         The text forwarder to use in the calculations
      */
     void SetEEIndex( sal_uInt16 nEEIndex, const SvxTextForwarder& rTF );
-    void SetEEIndex( sal_uInt16 nPara, sal_uInt16 nEEIndex, const SvxTextForwarder& rTF ) { SetParagraph(nPara); SetEEIndex(nEEIndex, rTF); }
+    void SetEEIndex( sal_uInt32 nPara, sal_uInt16 nEEIndex, const SvxTextForwarder& rTF ) { SetParagraph(nPara); SetEEIndex(nEEIndex, rTF); }
     sal_uInt16 GetEEIndex() const;
 
     void SetFieldOffset( sal_Int32 nOffset, sal_Int32 nLen ) { mnFieldOffset = nOffset; mnFieldLen = nLen; }
@@ -124,7 +124,7 @@ public:
     sal_Bool IsEditableRange( const SvxAccessibleTextIndex& rEnd ) const;
 
 private:
-    sal_uInt16 	  mnPara;
+    sal_uInt32 	  mnPara;
     sal_Int32 mnIndex;
     sal_Int32 mnEEIndex;
     sal_Int32 mnFieldOffset;
@@ -451,14 +451,14 @@ SvxAccessibleTextAdapter::~SvxAccessibleTextAdapter()
 {
 }
 
-sal_uInt16 SvxAccessibleTextAdapter::GetParagraphCount() const
+sal_uInt32 SvxAccessibleTextAdapter::GetParagraphCount() const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
     return mrTextForwarder->GetParagraphCount();
 }
 
-sal_uInt16 SvxAccessibleTextAdapter::GetTextLen( sal_uInt16 nParagraph ) const
+sal_uInt16 SvxAccessibleTextAdapter::GetTextLen( sal_uInt32 nParagraph ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -505,8 +505,8 @@ String SvxAccessibleTextAdapter::GetText( const ESelection& rSel ) const
         sStr = sStr.Copy(0, static_cast< sal_uInt16 > (sStr.Len() - (aEndIndex.GetFieldLen() - aEndIndex.GetFieldOffset())) );
     }
 
-    EBulletInfo aBulletInfo1 = GetBulletInfo( static_cast< sal_uInt16 >(aStartIndex.GetParagraph()) );
-    EBulletInfo aBulletInfo2 = GetBulletInfo( static_cast< sal_uInt16 >(aEndIndex.GetParagraph()) );
+    EBulletInfo aBulletInfo1 = GetBulletInfo( aStartIndex.GetParagraph() );
+    EBulletInfo aBulletInfo2 = GetBulletInfo( aEndIndex.GetParagraph() );
 
     if( aEndIndex.InBullet() )
     {
@@ -552,14 +552,14 @@ SfxItemSet SvxAccessibleTextAdapter::GetAttribs( const ESelection& rSel, sal_Boo
                                         bOnlyHardAttrib );
 }
 
-SfxItemSet SvxAccessibleTextAdapter::GetParaAttribs( sal_uInt16 nPara ) const
+SfxItemSet SvxAccessibleTextAdapter::GetParaAttribs( sal_uInt32 nPara ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
     return mrTextForwarder->GetParaAttribs( nPara );
 }
 
-void SvxAccessibleTextAdapter::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
+void SvxAccessibleTextAdapter::SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet )
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -571,7 +571,7 @@ void SvxAccessibleTextAdapter::RemoveAttribs( const ESelection& , sal_Bool , sal
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 }    
 
-void SvxAccessibleTextAdapter::GetPortions( sal_uInt16 nPara, SvUShorts& rList ) const
+void SvxAccessibleTextAdapter::GetPortions( sal_uInt32 nPara, SvUShorts& rList ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -592,7 +592,7 @@ sal_uInt16 SvxAccessibleTextAdapter::GetItemState( const ESelection& rSel, sal_u
                                           nWhich );
 }
 
-sal_uInt16 SvxAccessibleTextAdapter::GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich ) const
+sal_uInt16 SvxAccessibleTextAdapter::GetItemState( sal_uInt32 nPara, sal_uInt16 nWhich ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -661,21 +661,21 @@ SfxItemPool* SvxAccessibleTextAdapter::GetPool() const
     return mrTextForwarder->GetPool();
 }
 
-XubString SvxAccessibleTextAdapter::CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
+XubString SvxAccessibleTextAdapter::CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
     return mrTextForwarder->CalcFieldValue( rField, nPara, nPos, rpTxtColor, rpFldColor );
 }
 
-void SvxAccessibleTextAdapter::FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos )
+void SvxAccessibleTextAdapter::FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos )
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
     mrTextForwarder->FieldClicked( rField, nPara, nPos );
 }
 
-sal_Int32 SvxAccessibleTextAdapter::CalcLogicalIndex( sal_uInt16 nPara, sal_uInt16 nEEIndex )
+sal_Int32 SvxAccessibleTextAdapter::CalcLogicalIndex( sal_uInt32 nPara, sal_uInt16 nEEIndex )
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
     
@@ -684,7 +684,7 @@ sal_Int32 SvxAccessibleTextAdapter::CalcLogicalIndex( sal_uInt16 nPara, sal_uInt
     return aIndex.GetIndex();
 }
 
-sal_uInt16 SvxAccessibleTextAdapter::CalcEditEngineIndex( sal_uInt16 nPara, sal_Int32 nLogicalIndex )
+sal_uInt16 SvxAccessibleTextAdapter::CalcEditEngineIndex( sal_uInt32 nPara, sal_Int32 nLogicalIndex )
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
     
@@ -705,7 +705,7 @@ sal_Bool SvxAccessibleTextAdapter::IsValid() const
         return sal_False;
 }
 
-LanguageType SvxAccessibleTextAdapter::GetLanguage( sal_uInt16 nPara, sal_uInt16 nPos ) const
+LanguageType SvxAccessibleTextAdapter::GetLanguage( sal_uInt32 nPara, sal_uInt16 nPos ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -716,21 +716,21 @@ LanguageType SvxAccessibleTextAdapter::GetLanguage( sal_uInt16 nPara, sal_uInt16
     return mrTextForwarder->GetLanguage( nPara, aIndex.GetEEIndex() );
 }
 
-sal_uInt16 SvxAccessibleTextAdapter::GetFieldCount( sal_uInt16 nPara ) const
+sal_uInt16 SvxAccessibleTextAdapter::GetFieldCount( sal_uInt32 nPara ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
     return mrTextForwarder->GetFieldCount( nPara );
 }
 
-EFieldInfo SvxAccessibleTextAdapter::GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const
+EFieldInfo SvxAccessibleTextAdapter::GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
     return mrTextForwarder->GetFieldInfo( nPara, nField );
 }
 
-EBulletInfo SvxAccessibleTextAdapter::GetBulletInfo( sal_uInt16 nPara ) const
+EBulletInfo SvxAccessibleTextAdapter::GetBulletInfo( sal_uInt32 nPara ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -744,7 +744,7 @@ sal_Bool	SvxAccessibleTextAdapter::GetUpdateModeForAcc( ) const
 {
 	return mrTextForwarder->GetUpdateModeForAcc( );
 }
-Rectangle SvxAccessibleTextAdapter::GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+Rectangle SvxAccessibleTextAdapter::GetCharBounds( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -804,7 +804,7 @@ Rectangle SvxAccessibleTextAdapter::GetCharBounds( sal_uInt16 nPara, sal_uInt16
     return aRect;
 }
 
-Rectangle SvxAccessibleTextAdapter::GetParaBounds( sal_uInt16 nPara ) const
+Rectangle SvxAccessibleTextAdapter::GetParaBounds( sal_uInt32 nPara ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -839,7 +839,7 @@ OutputDevice* SvxAccessibleTextAdapter::GetRefDevice() const
     return mrTextForwarder->GetRefDevice();
 }
 
-sal_Bool SvxAccessibleTextAdapter::GetIndexAtPoint( const Point& rPoint, sal_uInt16& nPara, sal_uInt16& nIndex ) const
+sal_Bool SvxAccessibleTextAdapter::GetIndexAtPoint( const Point& rPoint, sal_uInt32& nPara, sal_uInt16& nIndex ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -914,7 +914,7 @@ sal_Bool SvxAccessibleTextAdapter::GetIndexAtPoint( const Point& rPoint, sal_uIn
     return sal_True;
 }
 
-sal_Bool SvxAccessibleTextAdapter::GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const
+sal_Bool SvxAccessibleTextAdapter::GetWordIndices( sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -968,7 +968,7 @@ sal_Bool SvxAccessibleTextAdapter::GetWordIndices( sal_uInt16 nPara, sal_uInt16
 
     return sal_True;
 }
-sal_Bool SvxAccessibleTextAdapter::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool /* bInCell */) const
+sal_Bool SvxAccessibleTextAdapter::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool /* bInCell */) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -1020,14 +1020,14 @@ sal_Bool SvxAccessibleTextAdapter::GetAttributeRun( sal_uInt16& nStartIndex, sal
     return sal_True;
 }
 
-sal_uInt16 SvxAccessibleTextAdapter::GetLineCount( sal_uInt16 nPara ) const
+sal_uInt16 SvxAccessibleTextAdapter::GetLineCount( sal_uInt32 nPara ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
     return mrTextForwarder->GetLineCount( nPara );
 }
 
-sal_uInt16 SvxAccessibleTextAdapter::GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const
+sal_uInt16 SvxAccessibleTextAdapter::GetLineLen( sal_uInt32 nPara, sal_uInt16 nLine ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -1053,12 +1053,12 @@ sal_uInt16 SvxAccessibleTextAdapter::GetLineLen( sal_uInt16 nPara, sal_uInt16 nL
         return static_cast< sal_uInt16 >(aEndIndex.GetIndex());
 }
 
-void SvxAccessibleTextAdapter::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const
+void SvxAccessibleTextAdapter::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nParagraph, sal_uInt16 nLine ) const
 {
     mrTextForwarder->GetLineBoundaries( rStart, rEnd, nParagraph, nLine );
-}    
+}
 
-sal_uInt16 SvxAccessibleTextAdapter::GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+sal_uInt16 SvxAccessibleTextAdapter::GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
     return mrTextForwarder->GetLineNumberAtIndex( nPara, nIndex );
 }    
@@ -1096,14 +1096,14 @@ sal_Bool SvxAccessibleTextAdapter::QuickFormatDoc( sal_Bool bFull )
     return mrTextForwarder->QuickFormatDoc( bFull );
 }
 
-sal_Int16 SvxAccessibleTextAdapter::GetDepth( sal_uInt16 nPara ) const
+sal_Int16 SvxAccessibleTextAdapter::GetDepth( sal_uInt32 nPara ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
     return mrTextForwarder->GetDepth( nPara );
 }
 
-sal_Bool SvxAccessibleTextAdapter::SetDepth( sal_uInt16 nPara, sal_Int16 nNewDepth )
+sal_Bool SvxAccessibleTextAdapter::SetDepth( sal_uInt32 nPara, sal_Int16 nNewDepth )
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -1115,7 +1115,7 @@ void SvxAccessibleTextAdapter::SetForwarder( SvxTextForwarder& rForwarder )
     mrTextForwarder = &rForwarder;
 }
 
-sal_Bool SvxAccessibleTextAdapter::HaveImageBullet( sal_uInt16 nPara ) const
+sal_Bool SvxAccessibleTextAdapter::HaveImageBullet( sal_uInt32 nPara ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -1133,7 +1133,7 @@ sal_Bool SvxAccessibleTextAdapter::HaveImageBullet( sal_uInt16 nPara ) const
     }
 }
 
-sal_Bool SvxAccessibleTextAdapter::HaveTextBullet( sal_uInt16 nPara ) const
+sal_Bool SvxAccessibleTextAdapter::HaveTextBullet( sal_uInt32 nPara ) const
 {
     DBG_ASSERT(mrTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 
@@ -1182,7 +1182,7 @@ void SvxAccessibleTextAdapter::AppendParagraph()
     DBG_ERROR( "not implemented" );
 }
 
-xub_StrLen SvxAccessibleTextAdapter::AppendTextPortion( sal_uInt16, const String &, const SfxItemSet & )
+xub_StrLen SvxAccessibleTextAdapter::AppendTextPortion( sal_uInt32, const String &, const SfxItemSet & )
 {
     DBG_ERROR( "not implemented" );
     return 0;
diff --git a/main/editeng/source/uno/unofored.cxx b/main/editeng/source/uno/unofored.cxx
index 8239dd5c23..9cf9dc3f2b 100644
--- a/main/editeng/source/uno/unofored.cxx
+++ b/main/editeng/source/uno/unofored.cxx
@@ -52,12 +52,12 @@ SvxEditEngineForwarder::~SvxEditEngineForwarder()
 	//	die EditEngine muss ggf. von aussen geloescht werden
 }
 
-sal_uInt16 SvxEditEngineForwarder::GetParagraphCount() const
+sal_uInt32 SvxEditEngineForwarder::GetParagraphCount() const
 {
 	return rEditEngine.GetParagraphCount();
 }
 
-sal_uInt16 SvxEditEngineForwarder::GetTextLen( sal_uInt16 nParagraph ) const
+sal_uInt16 SvxEditEngineForwarder::GetTextLen( sal_uInt32 nParagraph ) const
 {
 	return rEditEngine.GetTextLen( nParagraph );
 }
@@ -97,7 +97,7 @@ SfxItemSet SvxEditEngineForwarder::GetAttribs( const ESelection& rSel, sal_Bool
 	}
 }
 
-SfxItemSet SvxEditEngineForwarder::GetParaAttribs( sal_uInt16 nPara ) const
+SfxItemSet SvxEditEngineForwarder::GetParaAttribs( sal_uInt32 nPara ) const
 {
 	SfxItemSet aSet( rEditEngine.GetParaAttribs( nPara ) );
 
@@ -115,7 +115,7 @@ SfxItemSet SvxEditEngineForwarder::GetParaAttribs( sal_uInt16 nPara ) const
 	return aSet;
 }
 
-void SvxEditEngineForwarder::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
+void SvxEditEngineForwarder::SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet )
 {
 	rEditEngine.SetParaAttribs( nPara, rSet );
 }
@@ -130,7 +130,7 @@ SfxItemPool* SvxEditEngineForwarder::GetPool() const
 	return rEditEngine.GetEmptyItemSet().GetPool();
 }
 
-void SvxEditEngineForwarder::GetPortions( sal_uInt16 nPara, SvUShorts& rList ) const
+void SvxEditEngineForwarder::GetPortions( sal_uInt32 nPara, SvUShorts& rList ) const
 {
 	rEditEngine.GetPortions( nPara, rList );
 }
@@ -162,12 +162,12 @@ sal_Bool SvxEditEngineForwarder::IsValid() const
     return rEditEngine.GetUpdateMode();
 }
 
-XubString SvxEditEngineForwarder::CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
+XubString SvxEditEngineForwarder::CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
 {
 	return rEditEngine.CalcFieldValue( rField, nPara, nPos, rpTxtColor, rpFldColor );
 }
 
-void SvxEditEngineForwarder::FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos )
+void SvxEditEngineForwarder::FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos )
 {
     rEditEngine.FieldClicked( rField, nPara, nPos );
 }
@@ -181,7 +181,7 @@ sal_uInt16 GetSvxEditEngineItemState( EditEngine& rEditEngine, const ESelection&
 	SfxItemState eState = SFX_ITEM_DEFAULT;
 
 	// check all paragraphs inside the selection
-	for( sal_uInt16 nPara = rSel.nStartPara; nPara <= rSel.nEndPara; nPara++ )
+	for( sal_uInt32 nPara = rSel.nStartPara; nPara <= rSel.nEndPara; nPara++ )
 	{
 		SfxItemState eParaState = SFX_ITEM_DEFAULT;
 
@@ -309,33 +309,33 @@ sal_uInt16 SvxEditEngineForwarder::GetItemState( const ESelection& rSel, sal_uIn
 	return GetSvxEditEngineItemState( rEditEngine, rSel, nWhich );
 }
 
-sal_uInt16 SvxEditEngineForwarder::GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich ) const
+sal_uInt16 SvxEditEngineForwarder::GetItemState( sal_uInt32 nPara, sal_uInt16 nWhich ) const
 {
 	const SfxItemSet& rSet = rEditEngine.GetParaAttribs( nPara );
 	return rSet.GetItemState( nWhich );
 }
 
-LanguageType SvxEditEngineForwarder::GetLanguage( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+LanguageType SvxEditEngineForwarder::GetLanguage( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
     return rEditEngine.GetLanguage(nPara, nIndex);
 }
 
-sal_uInt16 SvxEditEngineForwarder::GetFieldCount( sal_uInt16 nPara ) const
+sal_uInt16 SvxEditEngineForwarder::GetFieldCount( sal_uInt32 nPara ) const
 {
     return rEditEngine.GetFieldCount(nPara); 
 }
 
-EFieldInfo SvxEditEngineForwarder::GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const
+EFieldInfo SvxEditEngineForwarder::GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const
 {
     return rEditEngine.GetFieldInfo( nPara, nField );
 }
 
-EBulletInfo SvxEditEngineForwarder::GetBulletInfo( sal_uInt16 ) const
+EBulletInfo SvxEditEngineForwarder::GetBulletInfo( sal_uInt32 ) const
 {
     return EBulletInfo();
 }
 
-Rectangle SvxEditEngineForwarder::GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+Rectangle SvxEditEngineForwarder::GetCharBounds( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
     // #101701#
     // EditEngine's 'internal' methods like GetCharacterBounds()
@@ -383,7 +383,7 @@ Rectangle SvxEditEngineForwarder::GetCharBounds( sal_uInt16 nPara, sal_uInt16 nI
     }
 }
 
-Rectangle SvxEditEngineForwarder::GetParaBounds( sal_uInt16 nPara ) const
+Rectangle SvxEditEngineForwarder::GetParaBounds( sal_uInt32 nPara ) const
 {
     const Point aPnt = rEditEngine.GetDocPosTopLeft( nPara );
     sal_uLong nWidth; 
@@ -421,7 +421,7 @@ OutputDevice* SvxEditEngineForwarder::GetRefDevice() const
     return rEditEngine.GetRefDevice();
 }
 
-sal_Bool SvxEditEngineForwarder::GetIndexAtPoint( const Point& rPos, sal_uInt16& nPara, sal_uInt16& nIndex ) const
+sal_Bool SvxEditEngineForwarder::GetIndexAtPoint( const Point& rPos, sal_uInt32& nPara, sal_uInt16& nIndex ) const
 {
     // #101701#
     Size aSize( rEditEngine.CalcTextWidth(), rEditEngine.GetTextHeight() );
@@ -438,7 +438,7 @@ sal_Bool SvxEditEngineForwarder::GetIndexAtPoint( const Point& rPos, sal_uInt16&
     return sal_True;
 }
 
-sal_Bool SvxEditEngineForwarder::GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const
+sal_Bool SvxEditEngineForwarder::GetWordIndices( sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const
 {
     ESelection aRes = rEditEngine.GetWord( ESelection(nPara, nIndex, nPara, nIndex), com::sun::star::i18n::WordType::DICTIONARY_WORD );
 
@@ -453,27 +453,27 @@ sal_Bool SvxEditEngineForwarder::GetWordIndices( sal_uInt16 nPara, sal_uInt16 nI
 
     return sal_False;
 }
-sal_Bool SvxEditEngineForwarder::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell ) const
+sal_Bool SvxEditEngineForwarder::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool bInCell ) const
 {
     return SvxEditSourceHelper::GetAttributeRun( nStartIndex, nEndIndex, rEditEngine, nPara, nIndex, bInCell );
 }
 
-sal_uInt16 SvxEditEngineForwarder::GetLineCount( sal_uInt16 nPara ) const
+sal_uInt16 SvxEditEngineForwarder::GetLineCount( sal_uInt32 nPara ) const
 {
     return rEditEngine.GetLineCount(nPara);
 }
 
-sal_uInt16 SvxEditEngineForwarder::GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const
+sal_uInt16 SvxEditEngineForwarder::GetLineLen( sal_uInt32 nPara, sal_uInt16 nLine ) const
 {
     return rEditEngine.GetLineLen(nPara, nLine);
 }
     
-void SvxEditEngineForwarder::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nPara, sal_uInt16 nLine ) const
+void SvxEditEngineForwarder::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nPara, sal_uInt16 nLine ) const
 {
     rEditEngine.GetLineBoundaries(rStart, rEnd, nPara, nLine);
 }
     
-sal_uInt16 SvxEditEngineForwarder::GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+sal_uInt16 SvxEditEngineForwarder::GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
     return rEditEngine.GetLineNumberAtIndex(nPara, nIndex);
 }
@@ -502,13 +502,13 @@ sal_Bool SvxEditEngineForwarder::InsertText( const String& rStr, const ESelectio
     return sal_True;
 }
 
-sal_Int16 SvxEditEngineForwarder::GetDepth( sal_uInt16 ) const
+sal_Int16 SvxEditEngineForwarder::GetDepth( sal_uInt32 ) const
 {
     // EditEngine does not support outline depth
     return -1;
 }
 
-sal_Bool SvxEditEngineForwarder::SetDepth( sal_uInt16, sal_Int16 nNewDepth )
+sal_Bool SvxEditEngineForwarder::SetDepth( sal_uInt32, sal_Int16 nNewDepth )
 {
     // EditEngine does not support outline depth
     return nNewDepth == -1 ? sal_True : sal_False;
@@ -524,11 +524,11 @@ void SvxEditEngineForwarder::AppendParagraph()
     rEditEngine.InsertParagraph( rEditEngine.GetParagraphCount(), String::EmptyString() );
 }
 
-xub_StrLen SvxEditEngineForwarder::AppendTextPortion( sal_uInt16 nPara, const String &rText, const SfxItemSet & /*rSet*/ )
+xub_StrLen SvxEditEngineForwarder::AppendTextPortion( sal_uInt32 nPara, const String &rText, const SfxItemSet & /*rSet*/ )
 {
     xub_StrLen nLen = 0;
 
-    sal_uInt16 nParaCount = rEditEngine.GetParagraphCount();
+    sal_uInt32 nParaCount = rEditEngine.GetParagraphCount();
     DBG_ASSERT( nPara < nParaCount, "paragraph index out of bounds" );
     if (/*0 <= nPara && */nPara < nParaCount)
     {
diff --git a/main/editeng/source/uno/unoforou.cxx b/main/editeng/source/uno/unoforou.cxx
index 56c75cb277..bdbd7d4f9e 100644
--- a/main/editeng/source/uno/unoforou.cxx
+++ b/main/editeng/source/uno/unoforou.cxx
@@ -59,12 +59,12 @@ SvxOutlinerForwarder::~SvxOutlinerForwarder()
 	flushCache();
 }
 
-sal_uInt16 SvxOutlinerForwarder::GetParagraphCount() const
+sal_uInt32 SvxOutlinerForwarder::GetParagraphCount() const
 {
-	return (sal_uInt16)rOutliner.GetParagraphCount();
+	return rOutliner.GetParagraphCount();
 }
 
-sal_uInt16 SvxOutlinerForwarder::GetTextLen( sal_uInt16 nParagraph ) const
+sal_uInt16 SvxOutlinerForwarder::GetTextLen( sal_uInt32 nParagraph ) const
 {
 	return rOutliner.GetEditEngine().GetTextLen( nParagraph );
 }
@@ -142,7 +142,7 @@ SfxItemSet SvxOutlinerForwarder::GetAttribs( const ESelection& rSel, sal_Bool bO
 	return aSet;
 }
 
-SfxItemSet SvxOutlinerForwarder::GetParaAttribs( sal_uInt16 nPara ) const
+SfxItemSet SvxOutlinerForwarder::GetParaAttribs( sal_uInt32 nPara ) const
 {
 	if( mpParaAttribsCache )
 	{
@@ -172,7 +172,7 @@ SfxItemSet SvxOutlinerForwarder::GetParaAttribs( sal_uInt16 nPara ) const
 	return *mpParaAttribsCache;
 }
 
-void SvxOutlinerForwarder::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
+void SvxOutlinerForwarder::SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet )
 {
 	flushCache();
 
@@ -196,7 +196,7 @@ SfxItemPool* SvxOutlinerForwarder::GetPool() const
 	return rOutliner.GetEmptyItemSet().GetPool();
 }
 
-void SvxOutlinerForwarder::GetPortions( sal_uInt16 nPara, SvUShorts& rList ) const
+void SvxOutlinerForwarder::GetPortions( sal_uInt32 nPara, SvUShorts& rList ) const
 {
 	((EditEngine&)rOutliner.GetEditEngine()).GetPortions( nPara, rList );
 }
@@ -232,12 +232,12 @@ void SvxOutlinerForwarder::QuickSetAttribs( const SfxItemSet& rSet, const ESelec
 	rOutliner.QuickSetAttribs( rSet, rSel );
 }
 
-XubString SvxOutlinerForwarder::CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
+XubString SvxOutlinerForwarder::CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
 {
 	return rOutliner.CalcFieldValue( rField, nPara, nPos, rpTxtColor, rpFldColor );
 }
 
-void SvxOutlinerForwarder::FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos )
+void SvxOutlinerForwarder::FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos )
 {
     rOutliner.FieldClicked( rField, nPara, nPos );
 }
@@ -256,7 +256,7 @@ sal_uInt16 SvxOutlinerForwarder::GetItemState( const ESelection& rSel, sal_uInt1
 	return GetSvxEditEngineItemState( (EditEngine&)rOutliner.GetEditEngine(), rSel, nWhich );
 }
 
-sal_uInt16 SvxOutlinerForwarder::GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich ) const
+sal_uInt16 SvxOutlinerForwarder::GetItemState( sal_uInt32 nPara, sal_uInt16 nWhich ) const
 {
 	const SfxItemSet& rSet = rOutliner.GetParaAttribs( nPara );
 	return rSet.GetItemState( nWhich );
@@ -278,27 +278,27 @@ void SvxOutlinerForwarder::flushCache()
 	}
 }
 
-LanguageType SvxOutlinerForwarder::GetLanguage( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+LanguageType SvxOutlinerForwarder::GetLanguage( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
     return rOutliner.GetLanguage(nPara, nIndex);
 }
 
-sal_uInt16 SvxOutlinerForwarder::GetFieldCount( sal_uInt16 nPara ) const
+sal_uInt16 SvxOutlinerForwarder::GetFieldCount( sal_uInt32 nPara ) const
 {
     return rOutliner.GetEditEngine().GetFieldCount(nPara);
 }
 
-EFieldInfo SvxOutlinerForwarder::GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const
+EFieldInfo SvxOutlinerForwarder::GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const
 {
     return rOutliner.GetEditEngine().GetFieldInfo( nPara, nField );
 }
 
-EBulletInfo SvxOutlinerForwarder::GetBulletInfo( sal_uInt16 nPara ) const
+EBulletInfo SvxOutlinerForwarder::GetBulletInfo( sal_uInt32 nPara ) const
 {
     return rOutliner.GetBulletInfo( nPara );
 }
 
-Rectangle SvxOutlinerForwarder::GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+Rectangle SvxOutlinerForwarder::GetCharBounds( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
     // #101701#
     // EditEngine's 'internal' methods like GetCharacterBounds()
@@ -346,7 +346,7 @@ Rectangle SvxOutlinerForwarder::GetCharBounds( sal_uInt16 nPara, sal_uInt16 nInd
     }
 }
 
-Rectangle SvxOutlinerForwarder::GetParaBounds( sal_uInt16 nPara ) const
+Rectangle SvxOutlinerForwarder::GetParaBounds( sal_uInt32 nPara ) const
 {
     Point aPnt = rOutliner.GetDocPosTopLeft( nPara );
     Size aSize = rOutliner.CalcTextSize();
@@ -379,7 +379,7 @@ OutputDevice* SvxOutlinerForwarder::GetRefDevice() const
     return rOutliner.GetRefDevice();
 }
 
-sal_Bool SvxOutlinerForwarder::GetIndexAtPoint( const Point& rPos, sal_uInt16& nPara, sal_uInt16& nIndex ) const
+sal_Bool SvxOutlinerForwarder::GetIndexAtPoint( const Point& rPos, sal_uInt32& nPara, sal_uInt16& nIndex ) const
 {
     // #101701#
     Size aSize( rOutliner.CalcTextSize() );
@@ -396,7 +396,7 @@ sal_Bool SvxOutlinerForwarder::GetIndexAtPoint( const Point& rPos, sal_uInt16& n
     return sal_True;
 }
 
-sal_Bool SvxOutlinerForwarder::GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const
+sal_Bool SvxOutlinerForwarder::GetWordIndices( sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const
 {
     ESelection aRes = rOutliner.GetEditEngine().GetWord( ESelection(nPara, nIndex, nPara, nIndex), com::sun::star::i18n::WordType::DICTIONARY_WORD );
 
@@ -411,27 +411,27 @@ sal_Bool SvxOutlinerForwarder::GetWordIndices( sal_uInt16 nPara, sal_uInt16 nInd
 
     return sal_False;
 }
-sal_Bool SvxOutlinerForwarder::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell ) const
+sal_Bool SvxOutlinerForwarder::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool bInCell ) const
 {
     return SvxEditSourceHelper::GetAttributeRun( nStartIndex, nEndIndex, rOutliner.GetEditEngine(), nPara, nIndex, bInCell );
 }
 
-sal_uInt16 SvxOutlinerForwarder::GetLineCount( sal_uInt16 nPara ) const
+sal_uInt16 SvxOutlinerForwarder::GetLineCount( sal_uInt32 nPara ) const
 {
     return static_cast < sal_uInt16 >( rOutliner.GetLineCount(nPara) );
 }
 
-sal_uInt16 SvxOutlinerForwarder::GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const
+sal_uInt16 SvxOutlinerForwarder::GetLineLen( sal_uInt32 nPara, sal_uInt16 nLine ) const
 {
     return rOutliner.GetLineLen(nPara, nLine);
 }
     
-void SvxOutlinerForwarder::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nPara, sal_uInt16 nLine ) const
+void SvxOutlinerForwarder::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nPara, sal_uInt16 nLine ) const
 {
     return rOutliner.GetEditEngine().GetLineBoundaries( rStart, rEnd, nPara, nLine );
 }
     
-sal_uInt16 SvxOutlinerForwarder::GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+sal_uInt16 SvxOutlinerForwarder::GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
     return rOutliner.GetEditEngine().GetLineNumberAtIndex( nPara, nIndex );
 }    
@@ -461,7 +461,7 @@ sal_Bool SvxOutlinerForwarder::InsertText( const String& rStr, const ESelection&
     return sal_True;
 }
 
-sal_Int16 SvxOutlinerForwarder::GetDepth( sal_uInt16 nPara ) const
+sal_Int16 SvxOutlinerForwarder::GetDepth( sal_uInt32 nPara ) const
 {
     DBG_ASSERT( nPara < GetParagraphCount(), "SvxOutlinerForwarder::GetDepth: Invalid paragraph index");
 
@@ -475,7 +475,7 @@ sal_Int16 SvxOutlinerForwarder::GetDepth( sal_uInt16 nPara ) const
     return nLevel;
 }
 
-sal_Bool SvxOutlinerForwarder::SetDepth( sal_uInt16 nPara, sal_Int16 nNewDepth )
+sal_Bool SvxOutlinerForwarder::SetDepth( sal_uInt32 nPara, sal_Int16 nNewDepth )
 {
     DBG_ASSERT( nPara < GetParagraphCount(), "SvxOutlinerForwarder::SetDepth: Invalid paragraph index");
 
@@ -497,7 +497,7 @@ sal_Bool SvxOutlinerForwarder::SetDepth( sal_uInt16 nPara, sal_Int16 nNewDepth )
     return sal_False;
 }
 
-sal_Int16 SvxOutlinerForwarder::GetNumberingStartValue( sal_uInt16 nPara )
+sal_Int16 SvxOutlinerForwarder::GetNumberingStartValue( sal_uInt32 nPara )
 {
     if( nPara < GetParagraphCount() )
     {
@@ -510,7 +510,7 @@ sal_Int16 SvxOutlinerForwarder::GetNumberingStartValue( sal_uInt16 nPara )
     }
 }
 
-void SvxOutlinerForwarder::SetNumberingStartValue(  sal_uInt16 nPara, sal_Int16 nNumberingStartValue )
+void SvxOutlinerForwarder::SetNumberingStartValue(  sal_uInt32 nPara, sal_Int16 nNumberingStartValue )
 {
     if( nPara < GetParagraphCount() )
     {
@@ -522,7 +522,7 @@ void SvxOutlinerForwarder::SetNumberingStartValue(  sal_uInt16 nPara, sal_Int16
     }
 }
 
-sal_Bool SvxOutlinerForwarder::IsParaIsNumberingRestart( sal_uInt16 nPara )
+sal_Bool SvxOutlinerForwarder::IsParaIsNumberingRestart( sal_uInt32 nPara )
 {
     if( nPara < GetParagraphCount() )
     {
@@ -535,7 +535,7 @@ sal_Bool SvxOutlinerForwarder::IsParaIsNumberingRestart( sal_uInt16 nPara )
     }
 }
 
-void SvxOutlinerForwarder::SetParaIsNumberingRestart(  sal_uInt16 nPara, sal_Bool bParaIsNumberingRestart )
+void SvxOutlinerForwarder::SetParaIsNumberingRestart(  sal_uInt32 nPara, sal_Bool bParaIsNumberingRestart )
 {
     if( nPara < GetParagraphCount() )
     {
@@ -559,12 +559,12 @@ void SvxOutlinerForwarder::AppendParagraph()
     rEditEngine.InsertParagraph( rEditEngine.GetParagraphCount(), String::EmptyString() );
 }
 
-xub_StrLen SvxOutlinerForwarder::AppendTextPortion( sal_uInt16 nPara, const String &rText, const SfxItemSet & /*rSet*/ )
+xub_StrLen SvxOutlinerForwarder::AppendTextPortion( sal_uInt32 nPara, const String &rText, const SfxItemSet & /*rSet*/ )
 {
     xub_StrLen nLen = 0;
 
     EditEngine& rEditEngine = const_cast< EditEngine& >( rOutliner.GetEditEngine() );
-    sal_uInt16 nParaCount = rEditEngine.GetParagraphCount();
+    sal_uInt32 nParaCount = rEditEngine.GetParagraphCount();
     DBG_ASSERT( nPara < nParaCount, "paragraph index out of bounds" );
     if (/*0 <= nPara && */nPara < nParaCount)
     {
@@ -588,21 +588,21 @@ void  SvxOutlinerForwarder::CopyText(const SvxTextForwarder& rSource)
 //------------------------------------------------------------------------
 
 
-sal_Int16 SvxTextForwarder::GetNumberingStartValue( sal_uInt16 )
+sal_Int16 SvxTextForwarder::GetNumberingStartValue( sal_uInt32 )
 {
     return -1;
 }
 
-void SvxTextForwarder::SetNumberingStartValue( sal_uInt16, sal_Int16 )
+void SvxTextForwarder::SetNumberingStartValue( sal_uInt32, sal_Int16 )
 {
 }
 
-sal_Bool SvxTextForwarder::IsParaIsNumberingRestart( sal_uInt16  )
+sal_Bool SvxTextForwarder::IsParaIsNumberingRestart( sal_uInt32  )
 {
     return sal_False;
 }
 
-void SvxTextForwarder::SetParaIsNumberingRestart( sal_uInt16, sal_Bool )
+void SvxTextForwarder::SetParaIsNumberingRestart( sal_uInt32, sal_Bool )
 {
 }
 
diff --git a/main/editeng/source/uno/unotext.cxx b/main/editeng/source/uno/unotext.cxx
index 7ce9ebfee4..195a2489b6 100644
--- a/main/editeng/source/uno/unotext.cxx
+++ b/main/editeng/source/uno/unotext.cxx
@@ -126,7 +126,7 @@ void GetSelection( struct ESelection& rSel, SvxTextForwarder* pForwarder ) throw
 	DBG_ASSERT( pForwarder, "I need a valid SvxTextForwarder!" );
 	if( pForwarder )
 	{
-		sal_Int16 nParaCount = pForwarder->GetParagraphCount();
+		sal_Int32 nParaCount = pForwarder->GetParagraphCount();
 		if(nParaCount>0)
 			nParaCount--;
 
@@ -139,7 +139,7 @@ void CheckSelection( struct ESelection& rSel, SvxTextForwarder* pForwarder ) thr
 	DBG_ASSERT( pForwarder, "I need a valid SvxTextForwarder!" );
 	if( pForwarder )
 	{
-		if( rSel.nStartPara == 0xffff )
+		if( rSel.nStartPara == EE_PARA_ALL )
 		{
 			::GetSelection( rSel, pForwarder );
 		}
@@ -318,7 +318,7 @@ void SvxUnoTextRangeBase::SetEditSource( SvxEditSource* pSource ) throw()
 
 	mpEditSource = pSource;
 
-	maSelection.nStartPara = 0xffff;
+	maSelection.nStartPara = EE_PARA_MAX; // or EE_PARA_NOT_FOUND? EE_PARA_ALL? What is the intent?
 
 	if( mpEditSource )
 		mpEditSource->addRange( this );
@@ -515,9 +515,9 @@ void SAL_CALL SvxUnoTextRangeBase::_setPropertyValue( const OUString& PropertyNa
 				while( nPara <= nEndPara )
 				{
 					// we have a paragraph
-					SfxItemSet aSet( pForwarder->GetParaAttribs( (sal_uInt16)nPara ) );
+					SfxItemSet aSet( pForwarder->GetParaAttribs( nPara ) );
 					setPropertyValue( pMap, aValue, maSelection, aSet, aSet );
-					pForwarder->SetParaAttribs( (sal_uInt16)nPara, aSet );
+					pForwarder->SetParaAttribs( nPara, aSet );
 					nPara++;
 				}
 			}
@@ -650,7 +650,7 @@ uno::Any SAL_CALL SvxUnoTextRangeBase::_getPropertyValue(const OUString& Propert
 		{
 			SfxItemSet* pAttribs = NULL;
 			if( nPara != -1 )
-				pAttribs = pForwarder->GetParaAttribs( (sal_uInt16)nPara ).Clone();
+				pAttribs = pForwarder->GetParaAttribs( nPara ).Clone();
 			else
 				pAttribs = pForwarder->GetAttribs( GetSelection() ).Clone();
 
@@ -859,7 +859,7 @@ void SAL_CALL SvxUnoTextRangeBase::_setPropertyValues( const uno::Sequence< ::rt
 				{
 					if( NULL == pNewParaSet )
 					{
-						const SfxItemSet aSet( pForwarder->GetParaAttribs( (sal_uInt16)nTempPara ) );
+						const SfxItemSet aSet( pForwarder->GetParaAttribs( nTempPara ) );
 						pOldParaSet = new SfxItemSet( aSet );
 						pNewParaSet = new SfxItemSet( *pOldParaSet->GetPool(), pOldParaSet->GetRanges() );
 					}
@@ -887,9 +887,9 @@ void SAL_CALL SvxUnoTextRangeBase::_setPropertyValues( const uno::Sequence< ::rt
 			{
 				while( nTempPara <= nEndPara )
 				{
-					SfxItemSet aSet( pForwarder->GetParaAttribs( (sal_uInt16)nTempPara ) );
+					SfxItemSet aSet( pForwarder->GetParaAttribs( nTempPara ) );
 					aSet.Put( *pNewParaSet );
-					pForwarder->SetParaAttribs( (sal_uInt16)nTempPara, aSet );
+					pForwarder->SetParaAttribs( nTempPara, aSet );
 					nTempPara++;
 				}
 				bNeedsUpdate = sal_True;
@@ -935,7 +935,7 @@ uno::Sequence< uno::Any > SAL_CALL SvxUnoTextRangeBase::_getPropertyValues( cons
 	{
 		SfxItemSet* pAttribs = NULL;
 		if( nPara != -1 )
-			pAttribs = pForwarder->GetParaAttribs( (sal_uInt16)nPara ).Clone();
+			pAttribs = pForwarder->GetParaAttribs( nPara ).Clone();
 		else
 			pAttribs = pForwarder->GetAttribs( GetSelection() ).Clone();
 
@@ -1003,7 +1003,7 @@ beans::PropertyState SAL_CALL SvxUnoTextRangeBase::_getPropertyState(const SfxIt
 				    while( *pWhichId )
 				    {
 					    if(nPara != -1)
-						    eTempItemState = pForwarder->GetItemState( (sal_uInt16)nPara, *pWhichId );
+						    eTempItemState = pForwarder->GetItemState( nPara, *pWhichId );
 					    else
 						    eTempItemState = pForwarder->GetItemState( GetSelection(), *pWhichId );
 
@@ -1052,7 +1052,7 @@ beans::PropertyState SAL_CALL SvxUnoTextRangeBase::_getPropertyState(const SfxIt
 		    if( nWID != 0 )
 		    {
 			    if( nPara != -1 )
-				    eItemState = pForwarder->GetItemState( (sal_uInt16)nPara, nWID );
+				    eItemState = pForwarder->GetItemState( nPara, nWID );
 			    else
 				    eItemState = pForwarder->GetItemState( GetSelection(), nWID );
 		    }
@@ -1103,7 +1103,7 @@ uno::Sequence< beans::PropertyState > SvxUnoTextRangeBase::_getPropertyStates(co
 		SfxItemSet* pSet = NULL;
 		if( nPara != -1 )
 		{
-			pSet = new SfxItemSet( pForwarder->GetParaAttribs( (sal_uInt16)nPara ) );
+			pSet = new SfxItemSet( pForwarder->GetParaAttribs( nPara ) );
 		}
 		else
 		{
@@ -1277,7 +1277,7 @@ void SvxUnoTextRangeBase::_setPropertyToDefault(SvxTextForwarder* pForwarder, co
 		}
 
 		if(nPara != -1)
-			pForwarder->SetParaAttribs( (sal_uInt16)nPara, aSet );
+			pForwarder->SetParaAttribs( nPara, aSet );
 		else
 			pForwarder->QuickSetAttribs( aSet, GetSelection() );
 
@@ -1407,7 +1407,7 @@ sal_Bool SvxUnoTextRangeBase::GoLeft(sal_Int16 nCount, sal_Bool Expand) throw()
 
 	//	#75098# use end position, as in Writer (start is anchor, end is cursor)
 	sal_uInt16 nNewPos = maSelection.nEndPos;
-	sal_uInt16 nNewPar = maSelection.nEndPara;
+	sal_uInt32 nNewPar = maSelection.nEndPara;
 
 	sal_Bool bOk = sal_True;
 	SvxTextForwarder* pForwarder = NULL;
@@ -1448,10 +1448,10 @@ sal_Bool SvxUnoTextRangeBase::GoRight(sal_Int16 nCount, sal_Bool Expand)  throw(
 
 
 		sal_uInt16 nNewPos = maSelection.nEndPos + nCount;			//! Ueberlauf ???
-		sal_uInt16 nNewPar = maSelection.nEndPara;
+		sal_uInt32 nNewPar = maSelection.nEndPara;
 
 		sal_Bool bOk = sal_True;
-		sal_uInt16 nParCount = pForwarder->GetParagraphCount();
+		sal_uInt32 nParCount = pForwarder->GetParagraphCount();
 		sal_uInt16 nThisLen = pForwarder->GetTextLen( nNewPar );
 		while ( nNewPos > nThisLen && bOk )
 		{
@@ -1496,7 +1496,7 @@ void SvxUnoTextRangeBase::GotoEnd(sal_Bool Expand) throw()
 	if( pForwarder )
 	{
 
-		sal_uInt16 nPar = pForwarder->GetParagraphCount();
+		sal_uInt32 nPar = pForwarder->GetParagraphCount();
 		if (nPar)
 			--nPar;
 
@@ -2118,7 +2118,7 @@ void SvxPropertyValuesToItemSet(
 		const uno::Sequence< beans::PropertyValue > rPropertyVaules,
         const SfxItemPropertySet *pPropSet,
         SvxTextForwarder *pForwarder /*needed for WID_NUMLEVEL*/,
-        sal_uInt16 nPara /*needed for WID_NUMLEVEL*/)
+        sal_uInt32 nPara /*needed for WID_NUMLEVEL*/)
 	throw(lang::IllegalArgumentException, beans::UnknownPropertyException, uno::RuntimeException)
 {
     sal_Int32 nProps = rPropertyVaules.getLength();
@@ -2197,7 +2197,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::appendParagraph(
     SvxTextForwarder *pTextForwarder = pEditSource ? pEditSource->GetTextForwarder() : 0;
     if (pTextForwarder)
     {
-        sal_uInt16 nParaCount = pTextForwarder->GetParagraphCount();
+        sal_uInt32 nParaCount = pTextForwarder->GetParagraphCount();
         DBG_ASSERT( nParaCount > 0, "paragraph count is 0 or negative" );
 		pTextForwarder->AppendParagraph();
 
@@ -2228,12 +2228,12 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::finishParagraph(
     SvxTextForwarder *pTextForwarder = pEditSource ? pEditSource->GetTextForwarder() : 0;
     if (pTextForwarder)
     {
-        sal_uInt16 nParaCount = pTextForwarder->GetParagraphCount();
+        sal_uInt32 nParaCount = pTextForwarder->GetParagraphCount();
         DBG_ASSERT( nParaCount > 0, "paragraph count is 0 or negative" );
         pTextForwarder->AppendParagraph();
 
         // set properties for the previously last paragraph
-        sal_uInt16 nPara = nParaCount - 1;
+        sal_uInt32 nPara = nParaCount - 1;
         ESelection aSel( nPara, 0, nPara, 0 );
         SfxItemSet aItemSet( *pTextForwarder->GetEmptyItemSetPtr() );
         SvxPropertyValuesToItemSet( aItemSet, rCharAndParaProps, 
@@ -2260,9 +2260,9 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::appendTextPortion(
 	uno::Reference< text::XTextRange > xRet;
     if (pTextForwarder)
     {
-        sal_uInt16 nParaCount = pTextForwarder->GetParagraphCount();
+        sal_uInt32 nParaCount = pTextForwarder->GetParagraphCount();
         DBG_ASSERT( nParaCount > 0, "paragraph count is 0 or negative" );
-		sal_uInt16 nPara = nParaCount - 1;
+		sal_uInt32 nPara = nParaCount - 1;
         SfxItemSet aSet( pTextForwarder->GetParaAttribs( nPara ) );
 		xub_StrLen nStart = pTextForwarder->AppendTextPortion( nPara, rText, aSet );
         pEditSource->UpdateData();
@@ -2511,12 +2511,12 @@ void SvxDummyTextSource::UpdateData()
 {
 }
 
-sal_uInt16 SvxDummyTextSource::GetParagraphCount() const
+sal_uInt32 SvxDummyTextSource::GetParagraphCount() const
 {
 	return 0;
 }
 
-sal_uInt16 SvxDummyTextSource::GetTextLen( sal_uInt16 ) const
+sal_uInt16 SvxDummyTextSource::GetTextLen( sal_uInt32 ) const
 {
 	return 0;
 }
@@ -2534,12 +2534,12 @@ SfxItemSet SvxDummyTextSource::GetAttribs( const ESelection&, sal_Bool ) const
 	return SfxItemSet(EditEngine::GetGlobalItemPool());
 }
 
-SfxItemSet SvxDummyTextSource::GetParaAttribs( sal_uInt16 ) const
+SfxItemSet SvxDummyTextSource::GetParaAttribs( sal_uInt32 ) const
 {
 	return GetAttribs(ESelection());
 }
 
-void SvxDummyTextSource::SetParaAttribs( sal_uInt16, const SfxItemSet& )
+void SvxDummyTextSource::SetParaAttribs( sal_uInt32, const SfxItemSet& )
 {
 }
 
@@ -2547,7 +2547,7 @@ void SvxDummyTextSource::RemoveAttribs( const ESelection& , sal_Bool , sal_uInt1
 {
 }
 
-void SvxDummyTextSource::GetPortions( sal_uInt16, SvUShorts& ) const
+void SvxDummyTextSource::GetPortions( sal_uInt32, SvUShorts& ) const
 {
 }
 
@@ -2556,7 +2556,7 @@ sal_uInt16 SvxDummyTextSource::GetItemState( const ESelection&, sal_uInt16 ) con
 	return 0;
 }
 
-sal_uInt16 SvxDummyTextSource::GetItemState( sal_uInt16, sal_uInt16 ) const
+sal_uInt16 SvxDummyTextSource::GetItemState( sal_uInt32, sal_uInt16 ) const
 {
 	return 0;
 }
@@ -2582,12 +2582,12 @@ void SvxDummyTextSource::QuickInsertLineBreak( const ESelection& )
 {
 };
 
-XubString SvxDummyTextSource::CalcFieldValue( const SvxFieldItem&, sal_uInt16, sal_uInt16, Color*&, Color*& )
+XubString SvxDummyTextSource::CalcFieldValue( const SvxFieldItem&, sal_uInt32, sal_uInt16, Color*&, Color*& )
 {
 	return XubString();
 }
 
-void SvxDummyTextSource::FieldClicked( const SvxFieldItem&, sal_uInt16, xub_StrLen )
+void SvxDummyTextSource::FieldClicked( const SvxFieldItem&, sal_uInt32, xub_StrLen )
 {
 }
 
@@ -2600,32 +2600,32 @@ void SvxDummyTextSource::SetNotifyHdl( const Link& )
 {
 }
 
-LanguageType SvxDummyTextSource::GetLanguage( sal_uInt16, sal_uInt16 ) const
+LanguageType SvxDummyTextSource::GetLanguage( sal_uInt32, sal_uInt16 ) const
 {
     return LANGUAGE_DONTKNOW;
 }
 
-sal_uInt16 SvxDummyTextSource::GetFieldCount( sal_uInt16 ) const
+sal_uInt16 SvxDummyTextSource::GetFieldCount( sal_uInt32 ) const
 {
     return 0;
 }
 
-EFieldInfo SvxDummyTextSource::GetFieldInfo( sal_uInt16, sal_uInt16 ) const
+EFieldInfo SvxDummyTextSource::GetFieldInfo( sal_uInt32, sal_uInt16 ) const
 {
     return EFieldInfo();
 }
 
-EBulletInfo SvxDummyTextSource::GetBulletInfo( sal_uInt16 ) const
+EBulletInfo SvxDummyTextSource::GetBulletInfo( sal_uInt32 ) const
 {
     return EBulletInfo();
 }
 
-Rectangle SvxDummyTextSource::GetCharBounds( sal_uInt16, sal_uInt16 ) const
+Rectangle SvxDummyTextSource::GetCharBounds( sal_uInt32, sal_uInt16 ) const
 {
     return Rectangle();
 }
 
-Rectangle SvxDummyTextSource::GetParaBounds( sal_uInt16 ) const
+Rectangle SvxDummyTextSource::GetParaBounds( sal_uInt32 ) const
 {
     return Rectangle();
 }
@@ -2640,37 +2640,37 @@ OutputDevice* SvxDummyTextSource::GetRefDevice() const
     return NULL;
 }
 
-sal_Bool SvxDummyTextSource::GetIndexAtPoint( const Point&, sal_uInt16&, sal_uInt16& ) const
+sal_Bool SvxDummyTextSource::GetIndexAtPoint( const Point&, sal_uInt32&, sal_uInt16& ) const
 {
     return sal_False;
 }
 
-sal_Bool SvxDummyTextSource::GetWordIndices( sal_uInt16, sal_uInt16, sal_uInt16&, sal_uInt16& ) const
+sal_Bool SvxDummyTextSource::GetWordIndices( sal_uInt32, sal_uInt16, sal_uInt16&, sal_uInt16& ) const
 {
     return sal_False;
 }
 
-sal_Bool SvxDummyTextSource::GetAttributeRun( sal_uInt16&, sal_uInt16&, sal_uInt16, sal_uInt16, sal_Bool ) const
+sal_Bool SvxDummyTextSource::GetAttributeRun( sal_uInt16&, sal_uInt16&, sal_uInt32, sal_uInt16, sal_Bool ) const
 {
     return sal_False;
 }
 
-sal_uInt16 SvxDummyTextSource::GetLineCount( sal_uInt16 ) const
+sal_uInt16 SvxDummyTextSource::GetLineCount( sal_uInt32 ) const
 {
     return 0;
 }
 
-sal_uInt16 SvxDummyTextSource::GetLineLen( sal_uInt16, sal_uInt16 ) const
+sal_uInt16 SvxDummyTextSource::GetLineLen( sal_uInt32, sal_uInt16 ) const
 {
     return 0;
 }
 
-void SvxDummyTextSource::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 /*nParagraph*/, sal_uInt16 /*nLine*/ ) const
+void SvxDummyTextSource::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 /*nParagraph*/, sal_uInt16 /*nLine*/ ) const
 {
     rStart = rEnd = 0;
 }
     
-sal_uInt16 SvxDummyTextSource::GetLineNumberAtIndex( sal_uInt16 /*nPara*/, sal_uInt16 /*nIndex*/ ) const
+sal_uInt16 SvxDummyTextSource::GetLineNumberAtIndex( sal_uInt32 /*nPara*/, sal_uInt16 /*nIndex*/ ) const
 {
     return 0;
 }    
@@ -2680,12 +2680,12 @@ sal_Bool SvxDummyTextSource::QuickFormatDoc( sal_Bool )
     return sal_False;
 }
 
-sal_Int16 SvxDummyTextSource::GetDepth( sal_uInt16 ) const
+sal_Int16 SvxDummyTextSource::GetDepth( sal_uInt32 ) const
 {
     return -1;
 }
 
-sal_Bool SvxDummyTextSource::SetDepth( sal_uInt16, sal_Int16 nNewDepth )
+sal_Bool SvxDummyTextSource::SetDepth( sal_uInt32, sal_Int16 nNewDepth )
 {
     return nNewDepth == 0 ? sal_True : sal_False;
 }
@@ -2709,7 +2709,7 @@ void SvxDummyTextSource::AppendParagraph()
 {
 }
 
-xub_StrLen SvxDummyTextSource::AppendTextPortion( sal_uInt16, const String &, const SfxItemSet & )
+xub_StrLen SvxDummyTextSource::AppendTextPortion( sal_uInt32, const String &, const SfxItemSet & )
 {
     return 0;
 }
diff --git a/main/editeng/source/uno/unotext2.cxx b/main/editeng/source/uno/unotext2.cxx
index 9df65431e6..761ab9fbde 100644
--- a/main/editeng/source/uno/unotext2.cxx
+++ b/main/editeng/source/uno/unotext2.cxx
@@ -128,7 +128,7 @@ SvxUnoTextContent::SvxUnoTextContent() throw()
 {
 }
 
-SvxUnoTextContent::SvxUnoTextContent( const SvxUnoTextBase& rText, sal_uInt16 nPara ) throw()
+SvxUnoTextContent::SvxUnoTextContent( const SvxUnoTextBase& rText, sal_uInt32 nPara ) throw()
 :	SvxUnoTextRangeBase(rText)
 ,	mnParagraph(nPara)
 ,	mrParentText(rText)
@@ -403,7 +403,7 @@ uno::Sequence< OUString > SAL_CALL SvxUnoTextContent::getSupportedServiceNames()
 //  class SvxUnoTextRangeEnumeration
 // ====================================================================
 
-SvxUnoTextRangeEnumeration::SvxUnoTextRangeEnumeration( const SvxUnoTextBase& rText, sal_uInt16 nPara ) throw()
+SvxUnoTextRangeEnumeration::SvxUnoTextRangeEnumeration( const SvxUnoTextBase& rText, sal_uInt32 nPara ) throw()
 :	mxParentText(  const_cast<SvxUnoTextBase*>(&rText) ),
 	mrParentText( rText ),
 	mnParagraph( nPara ),
diff --git a/main/filter/source/msfilter/msdffimp.cxx b/main/filter/source/msfilter/msdffimp.cxx
index 398b0fcdde..0468058029 100644
--- a/main/filter/source/msfilter/msdffimp.cxx
+++ b/main/filter/source/msfilter/msdffimp.cxx
@@ -3693,7 +3693,7 @@ void SvxMSDffManager::ReadObjText( const String& rText, SdrObject* pObj ) const
 		rOutliner.SetUpdateMode( sal_False );
 		rOutliner.SetVertical( pText->IsVerticalWriting() );
 
-		sal_uInt16 nParaIndex = 0;
+		sal_uInt32 nParaIndex = 0;
 		sal_uInt32 nParaSize;
 		const sal_Unicode* pCurrent, *pBuf = rText.GetBuffer();
 		const sal_Unicode* pEnd = rText.GetBuffer() + rText.Len();
@@ -4581,9 +4581,9 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
 									sal_Bool bIsRTL = aVirDev.GetTextIsRTL( rOutliner.GetText( rOutliner.GetParagraph( i ) ), 0, STRING_LEN );
 									if ( bIsRTL )
 									{
-										SfxItemSet aSet2( rOutliner.GetParaAttribs( (sal_uInt16)i ) );
+										SfxItemSet aSet2( rOutliner.GetParaAttribs( i ) );
 										aSet2.Put( SvxFrameDirectionItem( FRMDIR_HORI_RIGHT_TOP, EE_PARA_WRITINGDIR ) );
-										rOutliner.SetParaAttribs( (sal_uInt16)i, aSet2 );
+										rOutliner.SetParaAttribs( i, aSet2 );
 										bCreateNewParaObject = sal_True;
 									}
 								}
diff --git a/main/filter/source/msfilter/svdfppt.cxx b/main/filter/source/msfilter/svdfppt.cxx
index 86fbab9a12..3df82b2de9 100644
--- a/main/filter/source/msfilter/svdfppt.cxx
+++ b/main/filter/source/msfilter/svdfppt.cxx
@@ -2458,7 +2458,7 @@ SdrObject* SdrPowerPointImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj*
 						nCurrentIndex += nCharacters;
 					}
 				}
-				sal_uInt16	nParaIndex = (sal_uInt16)pTextObj->GetCurrentIndex();
+				sal_uInt32	nParaIndex = pTextObj->GetCurrentIndex();
 				SfxStyleSheet* pS = ( ppStyleSheetAry ) ? ppStyleSheetAry[ pPara->pParaSet->mnDepth ] : pSheet;
 
 				ESelection aSelection( nParaIndex, 0, nParaIndex, 0 );
diff --git a/main/filter/source/xsltdialog/xmlfileview.cxx b/main/filter/source/xsltdialog/xmlfileview.cxx
index 246157d47d..ae88092665 100644
--- a/main/filter/source/xsltdialog/xmlfileview.cxx
+++ b/main/filter/source/xsltdialog/xmlfileview.cxx
@@ -152,7 +152,7 @@ XMLFileWindow::XMLFileWindow( Window* pParent ) :
 	pHScrollbar(0),
 	pVScrollbar(0),
 	nCurTextWidth(0),
-    nStartLine(USHRT_MAX),
+    nStartLine(SAL_MAX_UINT32),
     eSourceEncoding(gsl_getSystemTextEncoding()),
 	bHighlighting(false)
 {
@@ -428,7 +428,7 @@ void XMLFileWindow::Notify( SfxBroadcaster& /* rBC */, const SfxHint& rHint )
 		}
 		else if( rTextHint.GetId() == TEXT_HINT_FORMATPARA )
 		{
-            DoDelayedSyntaxHighlight( (sal_uInt16)rTextHint.GetValue() );
+            DoDelayedSyntaxHighlight( rTextHint.GetValue() );
 		}
 	}
 }
@@ -819,7 +819,7 @@ void lcl_Highlight(const String& rSource, SwTextPortions& aPortionList)
 	}
 }
 
-void XMLFileWindow::DoDelayedSyntaxHighlight( sal_uInt16 nPara )
+void XMLFileWindow::DoDelayedSyntaxHighlight( sal_uInt32 nPara )
 {
 	if ( !bHighlighting )
 	{
@@ -828,7 +828,7 @@ void XMLFileWindow::DoDelayedSyntaxHighlight( sal_uInt16 nPara )
 	}
 }
 
-void XMLFileWindow::ImpDoHighlight( const String& rSource, sal_uInt16 nLineOff )
+void XMLFileWindow::ImpDoHighlight( const String& rSource, sal_uInt32 nLineOff )
 {
 	SwTextPortions aPortionList;
 	lcl_Highlight(rSource, aPortionList);
@@ -889,7 +889,7 @@ void XMLFileWindow::ImpDoHighlight( const String& rSource, sal_uInt16 nLineOff )
             r.eType != svtools::HTMLUNKNOWN)
                 r.eType = (svtools::ColorConfigEntry)svtools::HTMLUNKNOWN;
         Color aColor((ColorData)aConfig.GetColorValue((svtools::ColorConfigEntry)r.eType).nColor);
-        sal_uInt16 nLine = nLineOff+r.nLine; //
+        sal_uInt32 nLine = nLineOff+r.nLine; //
         pTextEngine->SetAttrib( TextAttribFontColor( aColor ), nLine, r.nStart, r.nEnd+1 );
 	}
 }
@@ -901,11 +901,11 @@ IMPL_LINK( XMLFileWindow, SyntaxTimerHdl, Timer *, pTimer )
 	pTextEngine->SetUpdateMode( sal_False );
 
 	bHighlighting = sal_True;
-	sal_uInt16 nLine;
+	sal_uInt32 nLine;
 	sal_uInt16 nCount  = 0;
 	// zuerst wird der Bereich um dem Cursor bearbeitet
 	TextSelection aSel = pTextView->GetSelection();
-    sal_uInt16 nCur = (sal_uInt16)aSel.GetStart().GetPara();
+    sal_uInt32 nCur = aSel.GetStart().GetPara();
 	if(nCur > 40)
 		nCur -= 40;
 	else
@@ -933,7 +933,7 @@ IMPL_LINK( XMLFileWindow, SyntaxTimerHdl, Timer *, pTimer )
 	void* p = aSyntaxLineTable.First();
 	while ( p && nCount < MAX_SYNTAX_HIGHLIGHT)
 	{
-		nLine = (sal_uInt16)aSyntaxLineTable.GetCurKey();
+		nLine = (sal_uInt32)aSyntaxLineTable.GetCurKey();
 		DoSyntaxHighlight( nLine );
 		sal_uInt16 nC = (sal_uInt16)aSyntaxLineTable.GetCurKey();
 		p = aSyntaxLineTable.Next();
@@ -966,7 +966,7 @@ IMPL_LINK( XMLFileWindow, SyntaxTimerHdl, Timer *, pTimer )
     return 0;
 }
 
-void XMLFileWindow::DoSyntaxHighlight( sal_uInt16 nPara )
+void XMLFileWindow::DoSyntaxHighlight( sal_uInt32 nPara )
 {
 	// Durch das DelayedSyntaxHighlight kann es passieren,
 	// dass die Zeile nicht mehr existiert!
diff --git a/main/filter/source/xsltdialog/xmlfileview.hxx b/main/filter/source/xsltdialog/xmlfileview.hxx
index 8b52402ca2..6dcd91b61e 100644
--- a/main/filter/source/xsltdialog/xmlfileview.hxx
+++ b/main/filter/source/xsltdialog/xmlfileview.hxx
@@ -85,7 +85,7 @@ private:
 					*pVScrollbar;
 
 	long			nCurTextWidth;
-	sal_uInt16			nStartLine;
+	sal_uInt32			nStartLine;
     rtl_TextEncoding eSourceEncoding;
 
 	Timer			aSyntaxIdleTimer;
@@ -94,7 +94,7 @@ private:
 	bool			bHighlighting;
 protected:
 	DECL_LINK( SyntaxTimerHdl, Timer * );
-	void			ImpDoHighlight( const String& rSource, sal_uInt16 nLineOff );
+	void			ImpDoHighlight( const String& rSource, sal_uInt32 nLineOff );
 
 	virtual void	Resize();
 	virtual void	DataChanged( const DataChangedEvent& );
@@ -106,9 +106,9 @@ protected:
 
 	DECL_LINK(ScrollHdl, ScrollBar*);
 
-	void			DoDelayedSyntaxHighlight( sal_uInt16 nPara );
+	void			DoDelayedSyntaxHighlight( sal_uInt32 nPara );
 
-	void			DoSyntaxHighlight( sal_uInt16 nPara );
+	void			DoSyntaxHighlight( sal_uInt32 nPara );
 
 public:
 					XMLFileWindow( Window* pParent );
diff --git a/main/forms/source/richtext/specialdispatchers.cxx b/main/forms/source/richtext/specialdispatchers.cxx
index c8f0999c05..1ecd4c4b81 100644
--- a/main/forms/source/richtext/specialdispatchers.cxx
+++ b/main/forms/source/richtext/specialdispatchers.cxx
@@ -76,10 +76,10 @@ namespace frm
         if ( !pEngine )
             return;
 
-        sal_uInt16 nParagraphs = pEngine->GetParagraphCount();
+        sal_uInt32 nParagraphs = pEngine->GetParagraphCount();
         if ( nParagraphs )
         {
-            sal_uInt16 nLastParaNumber = nParagraphs - 1;
+            sal_uInt32 nLastParaNumber = nParagraphs - 1;
             xub_StrLen nParaLen = pEngine->GetTextLen( nLastParaNumber );
             getEditView()->SetSelection( ESelection( 0, 0, nLastParaNumber, nParaLen ) );
         }
diff --git a/main/sc/inc/editutil.hxx b/main/sc/inc/editutil.hxx
index 6dcd6c54a1..25e2302ed5 100644
--- a/main/sc/inc/editutil.hxx
+++ b/main/sc/inc/editutil.hxx
@@ -212,8 +212,8 @@ public:
 
 	void	SetExecuteURL(sal_Bool bSet)	{ bExecuteURL = bSet; }
 
-	virtual void	FieldClicked( const SvxFieldItem& rField, sal_uInt16, sal_uInt16 );
-	virtual String	CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rTxtColor, Color*& rFldColor );
+	virtual void	FieldClicked( const SvxFieldItem& rField, sal_uInt32, sal_uInt16 );
+	virtual String	CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rTxtColor, Color*& rFldColor );
 };
 
 
@@ -225,7 +225,7 @@ private:
 
 public:
 	ScHeaderEditEngine( SfxItemPool* pEnginePool, sal_Bool bDeleteEnginePool = sal_False );
-	virtual String CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rTxtColor, Color*& rFldColor );
+	virtual String CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rTxtColor, Color*& rFldColor );
 
 	void SetTitle(const String& rNew)				{ aData.aTitle = rNew; }
 	void SetLongDocName(const String& rNew)			{ aData.aLongDocName = rNew; }
diff --git a/main/sc/source/core/data/attrib.cxx b/main/sc/source/core/data/attrib.cxx
index c7fd8ec2dd..60f2e21eba 100644
--- a/main/sc/source/core/data/attrib.cxx
+++ b/main/sc/source/core/data/attrib.cxx
@@ -795,8 +795,8 @@ void lcl_SetSpace( String& rStr, const ESelection& rSel )
 sal_Bool lcl_ConvertFields(EditEngine& rEng, const String* pCommands)
 {
 	sal_Bool bChange = sal_False;
-	sal_uInt16 nParCnt = rEng.GetParagraphCount();
-	for (sal_uInt16 nPar = 0; nPar<nParCnt; nPar++)
+	sal_uInt32 nParCnt = rEng.GetParagraphCount();
+	for (sal_uInt32 nPar = 0; nPar<nParCnt; nPar++)
 	{
 		String aStr = rEng.GetText( nPar );
 		xub_StrLen nPos;
@@ -930,7 +930,7 @@ SfxPoolItem* ScPageHFItem::Create( SvStream& rStream, sal_uInt16 nVer ) const
 //UNUSED2009-05 class ScFieldChangerEditEngine : public ScEditEngineDefaulter
 //UNUSED2009-05 {
 //UNUSED2009-05     TypeId      aExtFileId;
-//UNUSED2009-05     sal_uInt16      nConvPara;
+//UNUSED2009-05     sal_uInt32      nConvPara;
 //UNUSED2009-05     xub_StrLen  nConvPos;
 //UNUSED2009-05     sal_Bool        bConvert;
 //UNUSED2009-05 
@@ -938,7 +938,7 @@ SfxPoolItem* ScPageHFItem::Create( SvStream& rStream, sal_uInt16 nVer ) const
 //UNUSED2009-05     ScFieldChangerEditEngine( SfxItemPool* pEnginePool, sal_Bool bDeleteEnginePool );
 //UNUSED2009-05     virtual     ~ScFieldChangerEditEngine() {}
 //UNUSED2009-05 
-//UNUSED2009-05     virtual String  CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara,
+//UNUSED2009-05     virtual String  CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara,
 //UNUSED2009-05                                     sal_uInt16 nPos, Color*& rTxtColor,
 //UNUSED2009-05                                     Color*& rFldColor );
 //UNUSED2009-05 
@@ -956,7 +956,7 @@ SfxPoolItem* ScPageHFItem::Create( SvStream& rStream, sal_uInt16 nVer ) const
 //UNUSED2009-05 }
 //UNUSED2009-05 
 //UNUSED2009-05 String ScFieldChangerEditEngine::CalcFieldValue( const SvxFieldItem& rField,
-//UNUSED2009-05             sal_uInt16 nPara, sal_uInt16 nPos, Color*& /* rTxtColor */, Color*& /* rFldColor */ )
+//UNUSED2009-05             sal_uInt32 nPara, sal_uInt16 nPos, Color*& /* rTxtColor */, Color*& /* rFldColor */ )
 //UNUSED2009-05 {
 //UNUSED2009-05     const SvxFieldData* pFieldData = rField.GetField();
 //UNUSED2009-05     if ( pFieldData && pFieldData->Type() == aExtFileId )
diff --git a/main/sc/source/core/data/cell.cxx b/main/sc/source/core/data/cell.cxx
index a51261e448..1e0f621984 100644
--- a/main/sc/source/core/data/cell.cxx
+++ b/main/sc/source/core/data/cell.cxx
@@ -1988,7 +1988,7 @@ EditTextObject* ScFormulaCell::CreateURLObject()
     SvxURLField aUrlField( aURL, aCellText, SVXURLFORMAT_APPDEFAULT);
     EditEngine& rEE = pDocument->GetEditEngine();
     rEE.SetText( EMPTY_STRING );
-    rEE.QuickInsertField( SvxFieldItem( aUrlField, EE_FEATURE_FIELD ), ESelection( 0xFFFF, 0xFFFF ) );
+    rEE.QuickInsertField( SvxFieldItem( aUrlField, EE_FEATURE_FIELD ), ESelection( EE_PARA_MAX, EE_INDEX_MAX ) );
 
     return rEE.CreateTextObject();
 }
diff --git a/main/sc/source/core/data/column2.cxx b/main/sc/source/core/data/column2.cxx
index e1643cfb98..c0f18951ac 100644
--- a/main/sc/source/core/data/column2.cxx
+++ b/main/sc/source/core/data/column2.cxx
@@ -1059,8 +1059,8 @@ void ScColumn::RemoveEditAttribs( SCROW nStartRow, SCROW nEndRow )
                 pDocument->ApplyAsianEditSettings( *pEngine );
 			}
 			pEngine->SetText( *pData );
-			sal_uInt16 nParCount = pEngine->GetParagraphCount();
-			for (sal_uInt16 nPar=0; nPar<nParCount; nPar++)
+			sal_uInt32 nParCount = pEngine->GetParagraphCount();
+			for (sal_uInt32 nPar=0; nPar<nParCount; nPar++)
 			{
 				pEngine->QuickRemoveCharAttribs( nPar );
 				const SfxItemSet& rOld = pEngine->GetParaAttribs( nPar );
diff --git a/main/sc/source/core/data/documen8.cxx b/main/sc/source/core/data/documen8.cxx
index 09115fb2f4..1503ab8dad 100644
--- a/main/sc/source/core/data/documen8.cxx
+++ b/main/sc/source/core/data/documen8.cxx
@@ -1539,7 +1539,7 @@ void ScDocument::TransliterateText( const ScMarkData& rMultiMark, sal_Int32 nTyp
                     }
                     pEngine->ClearModifyFlag();
 
-                    sal_uInt16 nLastPar = pEngine->GetParagraphCount();
+                    sal_uInt32 nLastPar = pEngine->GetParagraphCount();
                     if (nLastPar)
                         --nLastPar;
                     xub_StrLen nTxtLen = pEngine->GetTextLen(nLastPar);
diff --git a/main/sc/source/core/data/global.cxx b/main/sc/source/core/data/global.cxx
index eb58438ece..bda67b36cf 100644
--- a/main/sc/source/core/data/global.cxx
+++ b/main/sc/source/core/data/global.cxx
@@ -895,10 +895,10 @@ sal_Bool ScGlobal::EETextObjEqual( const EditTextObject* pObj1,
 	if ( pObj1 && pObj2 )
 	{
 		//	first test for equal text content
-		sal_uInt16 nParCount = pObj1->GetParagraphCount();
+		sal_uInt32 nParCount = pObj1->GetParagraphCount();
 		if ( nParCount != pObj2->GetParagraphCount() )
 			return sal_False;
-		for (sal_uInt16 nPar=0; nPar<nParCount; nPar++)
+		for (sal_uInt32 nPar=0; nPar<nParCount; nPar++)
 			if ( pObj1->GetText(nPar) != pObj2->GetText(nPar) )
 				return sal_False;
 
diff --git a/main/sc/source/core/data/postit.cxx b/main/sc/source/core/data/postit.cxx
index 9217bc6db1..bdac22c1b2 100644
--- a/main/sc/source/core/data/postit.cxx
+++ b/main/sc/source/core/data/postit.cxx
@@ -565,7 +565,7 @@ OUString ScPostIt::GetText() const
     if( const EditTextObject* pEditObj = GetEditTextObject() )
     {
         OUStringBuffer aBuffer;
-        for( sal_uInt16 nPara = 0, nParaCount = pEditObj->GetParagraphCount(); nPara < nParaCount; ++nPara )
+        for( sal_uInt32 nPara = 0, nParaCount = pEditObj->GetParagraphCount(); nPara < nParaCount; ++nPara )
         {
             if( nPara > 0 )
                 aBuffer.append( sal_Unicode( '\n' ) );
diff --git a/main/sc/source/core/tool/editutil.cxx b/main/sc/source/core/tool/editutil.cxx
index 40e1b2c491..41983af8d1 100644
--- a/main/sc/source/core/tool/editutil.cxx
+++ b/main/sc/source/core/tool/editutil.cxx
@@ -80,8 +80,8 @@ String ScEditUtil::ModifyDelimiters( const String& rOld )
 static String lcl_GetDelimitedString( const EditEngine& rEngine, const sal_Char c )
 {
 	String aRet;
-	sal_uInt16 nParCount = rEngine.GetParagraphCount();
-	for (sal_uInt16 nPar=0; nPar<nParCount; nPar++)
+	sal_uInt32 nParCount = rEngine.GetParagraphCount();
+	for (sal_uInt32 nPar=0; nPar<nParCount; nPar++)
 	{
 		if (nPar > 0)
 			aRet += c;
@@ -334,8 +334,8 @@ void ScEditEngineDefaulter::SetDefaults( const SfxItemSet& rSet, sal_Bool bRemem
 	sal_Bool bUpdateMode = GetUpdateMode();
 	if ( bUpdateMode )
 		SetUpdateMode( sal_False );
-	sal_uInt16 nPara = GetParagraphCount();
-	for ( sal_uInt16 j=0; j<nPara; j++ )
+	sal_uInt32 nPara = GetParagraphCount();
+	for ( sal_uInt32 j=0; j<nPara; j++ )
 	{
 		SetParaAttribs( j, rNewSet );
 	}
@@ -455,8 +455,8 @@ void ScEditEngineDefaulter::RepeatDefaults()
 {
     if ( pDefaults )
     {
-        sal_uInt16 nPara = GetParagraphCount();
-        for ( sal_uInt16 j=0; j<nPara; j++ )
+        sal_uInt32 nPara = GetParagraphCount();
+        for ( sal_uInt32 j=0; j<nPara; j++ )
             SetParaAttribs( j, *pDefaults );
     }
 }
@@ -467,8 +467,8 @@ void ScEditEngineDefaulter::RemoveParaAttribs()
 	sal_Bool bUpdateMode = GetUpdateMode();
 	if ( bUpdateMode )
 		SetUpdateMode( sal_False );
-	sal_uInt16 nParCount = GetParagraphCount();
-	for (sal_uInt16 nPar=0; nPar<nParCount; nPar++)
+	sal_uInt32 nParCount = GetParagraphCount();
+	for (sal_uInt32 nPar=0; nPar<nParCount; nPar++)
 	{
 		const SfxItemSet& rParaAttribs = GetParaAttribs( nPar );
 		sal_uInt16 nWhich;
@@ -642,7 +642,7 @@ ScHeaderEditEngine::ScHeaderEditEngine( SfxItemPool* pEnginePoolP, sal_Bool bDel
 }
 
 String __EXPORT ScHeaderEditEngine::CalcFieldValue( const SvxFieldItem& rField,
-                                    sal_uInt16 /* nPara */, sal_uInt16 /* nPos */,
+                                    sal_uInt32 /* nPara */, sal_uInt16 /* nPos */,
                                     Color*& /* rTxtColor */, Color*& /* rFldColor */ )
 {
 	String aRet;
@@ -708,7 +708,7 @@ ScFieldEditEngine::ScFieldEditEngine( SfxItemPool* pEnginePoolP,
 }
 
 String __EXPORT ScFieldEditEngine::CalcFieldValue( const SvxFieldItem& rField,
-                                    sal_uInt16 /* nPara */, sal_uInt16 /* nPos */,
+                                    sal_uInt32 /* nPara */, sal_uInt16 /* nPos */,
                                     Color*& rTxtColor, Color*& /* rFldColor */ )
 {
 	String aRet;
@@ -751,7 +751,7 @@ String __EXPORT ScFieldEditEngine::CalcFieldValue( const SvxFieldItem& rField,
 	return aRet;
 }
 
-void __EXPORT ScFieldEditEngine::FieldClicked( const SvxFieldItem& rField, sal_uInt16, sal_uInt16 )
+void __EXPORT ScFieldEditEngine::FieldClicked( const SvxFieldItem& rField, sal_uInt32, sal_uInt16 )
 {
 	const SvxFieldData* pFld = rField.GetField();
 
diff --git a/main/sc/source/filter/excel/xehelper.cxx b/main/sc/source/filter/excel/xehelper.cxx
index 983e732f19..29661b39ae 100644
--- a/main/sc/source/filter/excel/xehelper.cxx
+++ b/main/sc/source/filter/excel/xehelper.cxx
@@ -463,8 +463,8 @@ XclExpStringRef lclCreateFormattedString(
     sal_Int16 nLastScript = XclExpStringHelper::GetLeadingScriptType( rRoot, rEE.GetText() );
 
     // process all paragraphs
-    sal_uInt16 nParaCount = rEE.GetParagraphCount();
-    for( sal_uInt16 nPara = 0; nPara < nParaCount; ++nPara )
+    sal_uInt32 nParaCount = rEE.GetParagraphCount();
+    for( sal_uInt32 nPara = 0; nPara < nParaCount; ++nPara )
     {
         ESelection aSel( nPara, 0 );
         String aParaText( rEE.GetText( nPara ) );
@@ -745,8 +745,8 @@ void XclExpHFConverter::AppendPortion( const EditTextObject* pTextObj, sal_Unico
             pFontList = pInfoItem->GetFontList();
     }
 
-    sal_uInt16 nParaCount = mrEE.GetParagraphCount();
-    for( sal_uInt16 nPara = 0; nPara < nParaCount; ++nPara )
+    sal_uInt32 nParaCount = mrEE.GetParagraphCount();
+    for( sal_uInt32 nPara = 0; nPara < nParaCount; ++nPara )
     {
         ESelection aSel( nPara, 0 );
         String aParaText;
diff --git a/main/sc/source/filter/excel/xicontent.cxx b/main/sc/source/filter/excel/xicontent.cxx
index 5a4acb8e83..fc8a09d639 100644
--- a/main/sc/source/filter/excel/xicontent.cxx
+++ b/main/sc/source/filter/excel/xicontent.cxx
@@ -188,7 +188,7 @@ void lclInsertUrl( const XclImpRoot& rRoot, const String& rUrl, SCCOL nScCol, SC
             if( pEditObj )
             {
                 rEE.SetText( *pEditObj );
-                rEE.QuickInsertField( SvxFieldItem( aUrlField, EE_FEATURE_FIELD ), ESelection( 0, 0, 0xFFFF, 0 ) );
+                rEE.QuickInsertField( SvxFieldItem( aUrlField, EE_FEATURE_FIELD ), ESelection( 0, 0, EE_PARA_MAX, 0 ) );
             }
             else
             {
@@ -198,7 +198,7 @@ void lclInsertUrl( const XclImpRoot& rRoot, const String& rUrl, SCCOL nScCol, SC
                 {
                     SfxItemSet aItemSet( rEE.GetEmptyItemSet() );
                     pPattern->FillEditItemSet( &aItemSet );
-                    rEE.QuickSetAttribs( aItemSet, ESelection( 0, 0, 0xFFFF, 0 ) );
+                    rEE.QuickSetAttribs( aItemSet, ESelection( 0, 0, EE_PARA_MAX, 0 ) );
                 }
             }
             ::std::auto_ptr< EditTextObject > xTextObj( rEE.CreateTextObject() );
diff --git a/main/sc/source/filter/html/htmlexp.cxx b/main/sc/source/filter/html/htmlexp.cxx
index a9b6e40bf6..b90a4db588 100644
--- a/main/sc/source/filter/html/htmlexp.cxx
+++ b/main/sc/source/filter/html/htmlexp.cxx
@@ -1163,7 +1163,7 @@ sal_Bool ScHTMLExport::WriteFieldText( const ScEditCell* pCell )
 	// text and anchor of URL fields, Doc-Engine is a ScFieldEditEngine
 	EditEngine& rEngine = pDoc->GetEditEngine();
 	rEngine.SetText( *pData );
-	sal_uInt16 nParas = rEngine.GetParagraphCount();
+	sal_uInt32 nParas = rEngine.GetParagraphCount();
 	if ( nParas )
 	{
 		ESelection aSel( 0, 0, nParas-1, rEngine.GetTextLen( nParas-1 ) );
@@ -1176,7 +1176,7 @@ sal_Bool ScHTMLExport::WriteFieldText( const ScEditCell* pCell )
 	{
 		sal_Bool bOldUpdateMode = rEngine.GetUpdateMode();
 		rEngine.SetUpdateMode( sal_True );		// no portions if not formatted
-		for ( sal_uInt16 nPar=0; nPar < nParas; nPar++ )
+		for ( sal_uInt32 nPar=0; nPar < nParas; nPar++ )
 		{
 			if ( nPar > 0 )
                 TAG_ON( OOO_STRING_SVTOOLS_HTML_linebreak );
diff --git a/main/sc/source/ui/app/inputhdl.cxx b/main/sc/source/ui/app/inputhdl.cxx
index 552e631977..4c7e526598 100644
--- a/main/sc/source/ui/app/inputhdl.cxx
+++ b/main/sc/source/ui/app/inputhdl.cxx
@@ -1459,7 +1459,7 @@ void ScInputHandler::UseColData()			// beim Tippen
 		ESelection aSel = pActiveView->GetSelection();
 		aSel.Adjust();
 
-		sal_uInt16 nParCnt = pEngine->GetParagraphCount();
+		sal_uInt32 nParCnt = pEngine->GetParagraphCount();
 		if ( aSel.nEndPara+1 == nParCnt )
 		{
 			xub_StrLen nParLen = pEngine->GetTextLen( aSel.nEndPara );
@@ -1532,7 +1532,7 @@ void ScInputHandler::NextAutoEntry( sal_Bool bBack )
 
 			ESelection aSel = pActiveView->GetSelection();
 			aSel.Adjust();
-			sal_uInt16 nParCnt = pEngine->GetParagraphCount();
+			sal_uInt32 nParCnt = pEngine->GetParagraphCount();
 			if ( aSel.nEndPara+1 == nParCnt && aSel.nStartPara == aSel.nEndPara )
 			{
 				String aText = GetEditText(pEngine);
@@ -1620,8 +1620,8 @@ void ScInputHandler::UpdateParenthesis()
 						if (bParenthesisShown)
 						{
 							//	alte Hervorhebung wegnehmen
-							sal_uInt16 nCount = pEngine->GetParagraphCount();
-							for (sal_uInt16 i=0; i<nCount; i++)
+							sal_uInt32 nCount = pEngine->GetParagraphCount();
+							for (sal_uInt32 i=0; i<nCount; i++)
 								pEngine->QuickRemoveCharAttribs( i, EE_CHAR_WEIGHT );
 						}
 
@@ -1647,8 +1647,8 @@ void ScInputHandler::UpdateParenthesis()
 
 	if ( bParenthesisShown && !bFound && pTableView )
 	{
-		sal_uInt16 nCount = pEngine->GetParagraphCount();
-		for (sal_uInt16 i=0; i<nCount; i++)
+		sal_uInt32 nCount = pEngine->GetParagraphCount();
+		for (sal_uInt32 i=0; i<nCount; i++)
 			pTableView->RemoveCharAttribs( i, EE_CHAR_WEIGHT );
 	}
 
@@ -1808,8 +1808,8 @@ void ScInputHandler::RemoveAdjust()
 	//	RemoveParaAttribs removes all paragraph attributes, including EE_PARA_JUST
 #if 0
 	sal_Bool bChange = sal_False;
-	sal_uInt16 nCount = pEngine->GetParagraphCount();
-	for (sal_uInt16 i=0; i<nCount; i++)
+	sal_uInt32 nCount = pEngine->GetParagraphCount();
+	for (sal_uInt32 i=0; i<nCount; i++)
 	{
 		const SfxItemSet& rOld = pEngine->GetParaAttribs( i );
 		if ( rOld.GetItemState( EE_PARA_JUST ) == SFX_ITEM_SET )
@@ -1844,8 +1844,8 @@ void ScInputHandler::RemoveRangeFinder()
 	//	pRangeFindList und Farben loeschen
 
 	pEngine->SetUpdateMode(sal_False);
-	sal_uInt16 nCount = pEngine->GetParagraphCount();	// koennte gerade neu eingefuegt worden sein
-	for (sal_uInt16 i=0; i<nCount; i++)
+	sal_uInt32 nCount = pEngine->GetParagraphCount();	// koennte gerade neu eingefuegt worden sein
+	for (sal_uInt32 i=0; i<nCount; i++)
 		pEngine->QuickRemoveCharAttribs( i, EE_CHAR_COLOR );
 	pEngine->SetUpdateMode(sal_True);
 
@@ -2024,7 +2024,7 @@ void lcl_SetTopSelection( EditView* pEditView, ESelection& rSel )
 	DBG_ASSERT( rSel.nStartPara==0 && rSel.nEndPara==0, "SetTopSelection: Para != 0" );
 
 	EditEngine* pEngine = pEditView->GetEditEngine();
-	sal_uInt16 nCount = pEngine->GetParagraphCount();
+	sal_uInt32 nCount = pEngine->GetParagraphCount();
 	if (nCount > 1)
 	{
 		xub_StrLen nParLen = pEngine->GetTextLen(rSel.nStartPara);
@@ -2176,9 +2176,9 @@ void ScInputHandler::UpdateFormulaMode()
 	SfxApplication* pSfxApp = SFX_APP();
 
     if ( pEngine->GetParagraphCount() == 1 &&
-         ( pEngine->GetText((sal_uInt16)0).GetChar(0) == '=' ||
-           pEngine->GetText((sal_uInt16)0).GetChar(0) == '+' ||
-           pEngine->GetText((sal_uInt16)0).GetChar(0) == '-' ) &&
+         ( pEngine->GetText(0).GetChar(0) == '=' ||
+           pEngine->GetText(0).GetChar(0) == '+' ||
+           pEngine->GetText(0).GetChar(0) == '-' ) &&
          !bProtected )
 	{
 		if (!bFormulaMode)
@@ -2330,11 +2330,11 @@ void ScInputHandler::SetMode( ScInputMode eNewMode )
 			}
 		}
 
-		sal_uInt16 nPara    = pEngine->GetParagraphCount()-1;
+		sal_uInt32 nPara    = pEngine->GetParagraphCount()-1;
 		xub_StrLen nLen = pEngine->GetText(nPara).Len();
 		sal_uInt16 nCount   = pEngine->GetViewCount();
 
-		for (sal_uInt16 i=0; i<nCount; i++)
+		for (sal_uInt32 i=0; i<nCount; i++)
 		{
 			if ( eMode == SC_INPUT_TABLE && eOldMode == SC_INPUT_TOP )
 			{
@@ -2388,7 +2388,7 @@ void lcl_SelectionToEnd( EditView* pView )
     if ( pView )
     {
         EditEngine* pEngine = pView->GetEditEngine();
-        sal_uInt16 nParCnt = pEngine->GetParagraphCount();
+        sal_uInt32 nParCnt = pEngine->GetParagraphCount();
         if ( nParCnt == 0 )
             nParCnt = 1;
         ESelection aSel( nParCnt-1, pEngine->GetTextLen(nParCnt-1) );   // empty selection, cursor at the end
@@ -2509,7 +2509,7 @@ void ScInputHandler::EnterHandler( sal_uInt8 nBlockMode )
 
 	if ( bModified && !bForget )			// was wird eingeben (Text/Objekt) ?
 	{
-		sal_uInt16 nParCnt = pEngine->GetParagraphCount();
+		sal_uInt32 nParCnt = pEngine->GetParagraphCount();
 		if ( nParCnt == 0 )
 			nParCnt = 1;
 		ESelection aSel( 0, 0, nParCnt-1, pEngine->GetTextLen(nParCnt-1) );
@@ -3646,7 +3646,7 @@ sal_Bool ScInputHandler::GetTextAndFields( ScEditEngineDefaulter& rDestEngine )
 	{
 		//	Feldbefehle enthalten?
 
-		sal_uInt16 nParCnt = pEngine->GetParagraphCount();
+		sal_uInt32 nParCnt = pEngine->GetParagraphCount();
 		SfxItemSet aSet = pEngine->GetAttribs( ESelection(0,0,nParCnt,0) );
 		SfxItemState eFieldState = aSet.GetItemState( EE_FEATURE_FIELD, sal_False );
 		if ( eFieldState == SFX_ITEM_DONTCARE || eFieldState == SFX_ITEM_SET )
@@ -3659,14 +3659,14 @@ sal_Bool ScInputHandler::GetTextAndFields( ScEditEngineDefaulter& rDestEngine )
 
 			//	Attribute loeschen
 
-			for (sal_uInt16 i=0; i<nParCnt; i++)
+			for (sal_uInt32 i=0; i<nParCnt; i++)
 				rDestEngine.QuickRemoveCharAttribs( i );
 
 			//	Absaetze zusammenfassen
 
 			while ( nParCnt > 1 )
 			{
-				xub_StrLen nLen = rDestEngine.GetTextLen( (sal_uInt16)0 );
+				xub_StrLen nLen = rDestEngine.GetTextLen( 0 );
 				ESelection aSel( 0,nLen, 1,0 );
 				rDestEngine.QuickInsertText( ' ', aSel );		// Umbruch durch Space ersetzen
 				--nParCnt;
diff --git a/main/sc/source/ui/app/transobj.cxx b/main/sc/source/ui/app/transobj.cxx
index 8ea28a2580..0e2b93a022 100644
--- a/main/sc/source/ui/app/transobj.cxx
+++ b/main/sc/source/ui/app/transobj.cxx
@@ -421,7 +421,7 @@ sal_Bool ScTransferObj::WriteObject( SotStorageStreamRef& rxOStm, void* pUserObj
 					//	write old format without support for unicode characters.
 					//	Get the data from the EditEngine's transferable instead.
 
-					sal_uInt16 nParCnt = pEngine->GetParagraphCount();
+					sal_uInt32 nParCnt = pEngine->GetParagraphCount();
 					if ( nParCnt == 0 )
 						nParCnt = 1;
 					ESelection aSel( 0, 0, nParCnt-1, pEngine->GetTextLen(nParCnt-1) );
diff --git a/main/sc/source/ui/docshell/docfunc.cxx b/main/sc/source/ui/docshell/docfunc.cxx
index f9032e96ac..4b016b51d5 100644
--- a/main/sc/source/ui/docshell/docfunc.cxx
+++ b/main/sc/source/ui/docshell/docfunc.cxx
@@ -868,10 +868,10 @@ void ScDocFunc::NotifyInputHandler( const ScAddress& rPos )
 
 		struct ScMyRememberItem
 		{
-			sal_uInt16		nIndex;
+			sal_uInt32		nIndex;
 			SfxItemSet	aItemSet;
 
-			ScMyRememberItem(const SfxItemSet& rItemSet, sal_uInt16 nTempIndex) :
+			ScMyRememberItem(const SfxItemSet& rItemSet, sal_uInt32 nTempIndex) :
                 nIndex(nTempIndex), aItemSet(rItemSet) {}
 		};
 
@@ -903,8 +903,8 @@ sal_Bool ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngi
 		//	not only alignment, so the object doesn't contain the cell attributes as
 		//	paragraph attributes. Before remove the attributes store they in a list to
 		//	set they back to the EditEngine.
-		sal_uInt16 nCount = rEngine.GetParagraphCount();
-		for (sal_uInt16 i=0; i<nCount; i++)
+		sal_uInt32 nCount = rEngine.GetParagraphCount();
+		for (sal_uInt32 i=0; i<nCount; i++)
 		{
 			const SfxItemSet& rOld = rEngine.GetParaAttribs( i );
 			if ( rOld.Count() )
diff --git a/main/sc/source/ui/drawfunc/drtxtob.cxx b/main/sc/source/ui/drawfunc/drtxtob.cxx
index d44a4f9437..a397524d3c 100644
--- a/main/sc/source/ui/drawfunc/drtxtob.cxx
+++ b/main/sc/source/ui/drawfunc/drtxtob.cxx
@@ -215,7 +215,7 @@ void __EXPORT ScDrawTextObjectBar::Execute( SfxRequest &rReq )
 		case SID_SELECTALL:
 			{
 				sal_uLong nCount = pOutliner->GetParagraphCount();
-				ESelection aSel( 0,0,(sal_uInt16)nCount,0 );
+				ESelection aSel( 0,0,nCount,0 );
 				pOutView->SetSelection( aSel );
 			}
 			break;
@@ -647,7 +647,7 @@ void lcl_RemoveFields( OutlinerView& rOutView )
 		if ( nPar >= aSel.nStartPara && nPar <= aSel.nEndPara )
 		{
 			SvUShorts aPortions;
-			rEditEng.GetPortions( (sal_uInt16)nPar, aPortions );
+			rEditEng.GetPortions( nPar, aPortions );
 			//!	GetPortions should use xub_StrLen instead of sal_uInt16
 
 			for ( sal_uInt16 nPos = aPortions.Count(); nPos; )
@@ -660,7 +660,7 @@ void lcl_RemoveFields( OutlinerView& rOutView )
 					 ( nPar > aSel.nStartPara || nStart >= aSel.nStartPos ) &&
 					 ( nPar < aSel.nEndPara   || nEnd   <= aSel.nEndPos ) )
 				{
-					ESelection aFieldSel( (sal_uInt16)nPar, nStart, (sal_uInt16)nPar, nEnd );
+					ESelection aFieldSel( nPar, nStart, nPar, nEnd );
 					SfxItemSet aSet = rEditEng.GetAttribs( aFieldSel );
 					if ( aSet.GetItemState( EE_FEATURE_FIELD ) == SFX_ITEM_ON )
 					{
diff --git a/main/sc/source/ui/pagedlg/tphfedit.cxx b/main/sc/source/ui/pagedlg/tphfedit.cxx
index 9d7ab8e670..abf22dd254 100644
--- a/main/sc/source/ui/pagedlg/tphfedit.cxx
+++ b/main/sc/source/ui/pagedlg/tphfedit.cxx
@@ -462,8 +462,8 @@ EditTextObject* __EXPORT ScEditWindow::CreateTextObject()
 	//	(GetAttribs beim Format-Dialog-Aufruf gibt immer gesetzte Items zurueck)
 
 	const SfxItemSet& rEmpty = pEdEngine->GetEmptyItemSet();
-	sal_uInt16 nParCnt = pEdEngine->GetParagraphCount();
-	for (sal_uInt16 i=0; i<nParCnt; i++)
+	sal_uInt32 nParCnt = pEdEngine->GetParagraphCount();
+	for (sal_uInt32 i=0; i<nParCnt; i++)
 		pEdEngine->SetParaAttribs( i, rEmpty );
 
 	return pEdEngine->CreateTextObject();
diff --git a/main/sc/source/ui/unoobj/fielduno.cxx b/main/sc/source/ui/unoobj/fielduno.cxx
index c581a28860..763df0324d 100644
--- a/main/sc/source/ui/unoobj/fielduno.cxx
+++ b/main/sc/source/ui/unoobj/fielduno.cxx
@@ -125,7 +125,7 @@ class ScUnoEditEngine : public ScEditEngineDefaulter
 	sal_uInt16				nFieldCount;
 	TypeId				aFieldType;
 	SvxFieldData*		pFound;			// lokale Kopie
-	sal_uInt16				nFieldPar;
+	sal_uInt32				nFieldPar;
 	xub_StrLen			nFieldPos;
 	sal_uInt16				nFieldIndex;
 
@@ -134,14 +134,14 @@ public:
 				~ScUnoEditEngine();
 
 					//!	nPos should be xub_StrLen
-	virtual String	CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos,
+	virtual String	CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos,
 									Color*& rTxtColor, Color*& rFldColor );
 
 	sal_uInt16			CountFields(TypeId aType);
 	SvxFieldData*	FindByIndex(sal_uInt16 nIndex, TypeId aType);
-	SvxFieldData*	FindByPos(sal_uInt16 nPar, xub_StrLen nPos, TypeId aType);
+	SvxFieldData*	FindByPos(sal_uInt32 nPar, xub_StrLen nPos, TypeId aType);
 
-	sal_uInt16			GetFieldPar() const		{ return nFieldPar; }
+	sal_uInt32			GetFieldPar() const		{ return nFieldPar; }
 	xub_StrLen		GetFieldPos() const		{ return nFieldPos; }
 };
 
@@ -166,7 +166,7 @@ ScUnoEditEngine::~ScUnoEditEngine()
 }
 
 String ScUnoEditEngine::CalcFieldValue( const SvxFieldItem& rField,
-			sal_uInt16 nPara, sal_uInt16 nPos, Color*& rTxtColor, Color*& rFldColor )
+			sal_uInt32 nPara, sal_uInt16 nPos, Color*& rTxtColor, Color*& rFldColor )
 {
 	String aRet(EditEngine::CalcFieldValue( rField, nPara, nPos, rTxtColor, rFldColor ));
 	if (eMode != SC_UNO_COLLECT_NONE)
@@ -220,7 +220,7 @@ SvxFieldData* ScUnoEditEngine::FindByIndex(sal_uInt16 nIndex, TypeId aType)
 	return pFound;
 }
 
-SvxFieldData* ScUnoEditEngine::FindByPos(sal_uInt16 nPar, xub_StrLen nPos, TypeId aType)
+SvxFieldData* ScUnoEditEngine::FindByPos(sal_uInt32 nPar, xub_StrLen nPos, TypeId aType)
 {
 	eMode = SC_UNO_COLLECT_FINDPOS;
 	nFieldPar = nPar;
@@ -295,7 +295,7 @@ ScCellFieldObj* ScCellFieldsObj::GetObjectByIndex_Impl(sal_Int32 Index) const
 
 	if ( aTempEngine.FindByIndex( (sal_uInt16)Index, NULL ) )	// in der Zelle ist der Typ egal
 	{
-		sal_uInt16 nPar = aTempEngine.GetFieldPar();
+		sal_uInt32 nPar = aTempEngine.GetFieldPar();
 		xub_StrLen nPos = aTempEngine.GetFieldPos();
 		ESelection aSelection( nPar, nPos, nPar, nPos+1 );		// Feld ist 1 Zeichen
 		return new ScCellFieldObj( pDocShell, aCellPos, aSelection );
@@ -928,7 +928,7 @@ ScHeaderFieldObj* ScHeaderFieldsObj::GetObjectByIndex_Impl(sal_Int32 Index) cons
 	SvxFieldData* pData = aTempEngine.FindByIndex( (sal_uInt16)Index, aTypeId );
 	if ( pData )
 	{
-		sal_uInt16 nPar = aTempEngine.GetFieldPar();
+		sal_uInt32 nPar = aTempEngine.GetFieldPar();
 		xub_StrLen nPos = aTempEngine.GetFieldPos();
 
 		sal_uInt16 nFieldType = nType;
diff --git a/main/sc/source/ui/view/editsh.cxx b/main/sc/source/ui/view/editsh.cxx
index c1ae533e27..8a1b483731 100644
--- a/main/sc/source/ui/view/editsh.cxx
+++ b/main/sc/source/ui/view/editsh.cxx
@@ -326,7 +326,7 @@ void ScEditShell::Execute( SfxRequest& rReq )
 
 		case SID_SELECTALL:
 			{
-				sal_uInt16 nPar = pEngine->GetParagraphCount();
+				sal_uInt32 nPar = pEngine->GetParagraphCount();
 				if (nPar)
 				{
 					xub_StrLen nLen = pEngine->GetTextLen(nPar-1);
diff --git a/main/sc/source/ui/view/output2.cxx b/main/sc/source/ui/view/output2.cxx
index 9d6e49e5bd..2bdcf54eae 100644
--- a/main/sc/source/ui/view/output2.cxx
+++ b/main/sc/source/ui/view/output2.cxx
@@ -1965,8 +1965,8 @@ void lcl_ScaleFonts( EditEngine& rEngine, long nPercent )
     if ( bUpdateMode )
         rEngine.SetUpdateMode( sal_False );
 
-    sal_uInt16 nParCount = rEngine.GetParagraphCount();
-    for (sal_uInt16 nPar=0; nPar<nParCount; nPar++)
+    sal_uInt32 nParCount = rEngine.GetParagraphCount();
+    for (sal_uInt32 nPar=0; nPar<nParCount; nPar++)
     {
         SvUShorts aPortions;
         rEngine.GetPortions( nPar, aPortions );
diff --git a/main/sc/source/ui/view/viewdata.cxx b/main/sc/source/ui/view/viewdata.cxx
index 54d748a071..a4ea42cfc7 100644
--- a/main/sc/source/ui/view/viewdata.cxx
+++ b/main/sc/source/ui/view/viewdata.cxx
@@ -1390,7 +1390,7 @@ void ScViewData::EditGrowY( sal_Bool bInitial )
 		//	because this occurs in the normal progress of editing a formula.
 		//	Subsequent calls with empty text might involve changed attributes (including
 		//	font height), so they are treated like normal text.
-		String aText = pEngine->GetText( (sal_uInt16) 0 );
+		String aText = pEngine->GetText( 0 );
 		if ( ( aText.Len() == 0 && bInitial ) || aText.GetChar(0) == (sal_Unicode)'=' )
 			nAllowedExtra = SC_GROWY_BIG_EXTRA;
 	}
diff --git a/main/sc/source/ui/view/viewfun4.cxx b/main/sc/source/ui/view/viewfun4.cxx
index 6b6b61d2f2..c85e774bf7 100644
--- a/main/sc/source/ui/view/viewfun4.cxx
+++ b/main/sc/source/ui/view/viewfun4.cxx
@@ -133,7 +133,7 @@ void ScViewFunc::PasteRTF( SCCOL nStartCol, SCROW nStartRow,
 			}
 
 			SCROW nRow = nStartRow;
-			for( sal_uInt16 n = 0; n < nParCnt; n++ )
+			for( sal_uInt32 n = 0; n < nParCnt; n++ )
 			{
 				EditTextObject* pObject = pEngine->CreateTextObject( n );
 				EnterData( nStartCol, nRow, nTab, pObject, sal_False, sal_True );
@@ -781,7 +781,7 @@ void ScViewFunc::InsertBookmark( const String& rDescription, const String& rURL,
 		}
 	}
 
-	sal_uInt16 nPara = aEngine.GetParagraphCount();
+	sal_uInt32 nPara = aEngine.GetParagraphCount();
 	if (nPara)
 		--nPara;
 	xub_StrLen nTxtLen = aEngine.GetTextLen(nPara);
diff --git a/main/sc/source/ui/view/viewfunc.cxx b/main/sc/source/ui/view/viewfunc.cxx
index a72cfed716..c45ed4ab70 100644
--- a/main/sc/source/ui/view/viewfunc.cxx
+++ b/main/sc/source/ui/view/viewfunc.cxx
@@ -761,7 +761,7 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab, const EditTextOb
 
 			if ( !bSimple && aEngine.GetParagraphCount() == 1 )
 			{
-				String aParStr = aEngine.GetText( (sal_uInt16) 0 );
+				String aParStr = aEngine.GetText( 0 );
 				if ( aParStr.GetChar(0) == '=' )
 					bSimple = sal_True;
 			}
diff --git a/main/sd/source/filter/html/htmlex.cxx b/main/sd/source/filter/html/htmlex.cxx
index f303d16fea..1c64bccc18 100644
--- a/main/sd/source/filter/html/htmlex.cxx
+++ b/main/sd/source/filter/html/htmlex.cxx
@@ -353,7 +353,7 @@ String HtmlState::SetLink( const String& aLink, const String& aTarget )
 // class HtmlExport Methoden
 // *********************************************************************
 
-static String getParagraphStyle( SdrOutliner* pOutliner, sal_uInt16 nPara )
+static String getParagraphStyle( SdrOutliner* pOutliner, sal_uInt32 nPara )
 {
     SfxItemSet aParaSet( pOutliner->GetParaAttribs( nPara ) );
 
@@ -1247,7 +1247,7 @@ String HtmlExport::CreateTextForPage( SdrOutliner* pOutliner,
 				if(pPara == 0)
 					continue;
 
-				const sal_Int16 nDepth = (sal_uInt16) pOutliner->GetDepth( (sal_uInt16) nPara );
+				const sal_Int16 nDepth = (sal_uInt16) pOutliner->GetDepth( nPara );
 				aParaText = ParagraphToHTMLString(pOutliner,nPara,rBackgroundColor);
 
 				if(aParaText.Len() == 0)
@@ -1368,7 +1368,7 @@ String HtmlExport::ParagraphToHTMLString( SdrOutliner* pOutliner, sal_uLong nPar
 
 	HtmlState aState( (mbUserAttr || mbDocColors)  ? maTextColor : Color(COL_BLACK) );
 	SvUShorts aPortionList;
-	rEditEngine.GetPortions( (sal_uInt16) nPara, aPortionList );
+	rEditEngine.GetPortions( nPara, aPortionList );
 	sal_uInt16 nPortionCount = aPortionList.Count();
 
 	sal_uInt16 nPos1 = 0;
@@ -1376,7 +1376,7 @@ String HtmlExport::ParagraphToHTMLString( SdrOutliner* pOutliner, sal_uLong nPar
 	{
 		sal_uInt16 nPos2 = aPortionList.GetObject(nPortion);
 
-		ESelection aSelection( (sal_uInt16) nPara, nPos1, (sal_uInt16) nPara, nPos2);
+		ESelection aSelection( nPara, nPos1, nPara, nPos2);
 
 		SfxItemSet aSet( rEditEngine.GetAttribs( aSelection ) );
 
diff --git a/main/sd/source/filter/ppt/pptinanimations.cxx b/main/sd/source/filter/ppt/pptinanimations.cxx
index c6f644b22a..af4a5ba270 100644
--- a/main/sd/source/filter/ppt/pptinanimations.cxx
+++ b/main/sd/source/filter/ppt/pptinanimations.cxx
@@ -3078,9 +3078,9 @@ sal_Int32 AnimationImporter::importTargetElementContainer( const Atom* pAtom, An
 
 						const EditTextObject& rEditTextObject = pOPO->GetTextObject();
 
-						const sal_uInt16 nParaCount = rEditTextObject.GetParagraphCount();
+						const sal_uInt32 nParaCount = rEditTextObject.GetParagraphCount();
 
-						sal_uInt16 nPara = 0;
+						sal_uInt32 nPara = 0;
 
 						while( (nPara < nParaCount) && (begin > 0) )
 						{
diff --git a/main/sd/source/filter/xml/sdtransform.cxx b/main/sd/source/filter/xml/sdtransform.cxx
index 707832c2af..a0de4eda4a 100644
--- a/main/sd/source/filter/xml/sdtransform.cxx
+++ b/main/sd/source/filter/xml/sdtransform.cxx
@@ -216,7 +216,7 @@ void SdTransformOOo2xDocument::transformTextShape( SdrTextObj& rTextShape )
 
             bool bChange = false;
 
-			for(sal_uInt16 nPara = 0; nPara < nCount; nPara++)
+			for(sal_uInt32 nPara = 0; nPara < nCount; nPara++)
 			{
 				SfxItemSet aParaSet( mrOutliner.GetParaAttribs( nPara ) );
 
diff --git a/main/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx b/main/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
index b406d64ad7..942f0884f3 100644
--- a/main/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
+++ b/main/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
@@ -928,7 +928,7 @@ uno::Any SAL_CALL AccessibleDocumentViewBase::getExtendedAttributes()
 				{
 					sValue += rtl::OUString::createFromAscii("note:");
 					const EditTextObject& rEdit = pPara->GetTextObject();
-					for (sal_uInt16 i=0;i<rEdit.GetParagraphCount();i++)
+					for (sal_uInt32 i=0;i<rEdit.GetParagraphCount();i++)
 					{
 						String strNote = rEdit.GetText(i);
 						strNote.SearchAndReplace( String::CreateFromAscii( "\\" ), String::CreateFromAscii("\\\\" ));
diff --git a/main/sd/source/ui/annotations/annotationmanager.cxx b/main/sd/source/ui/annotations/annotationmanager.cxx
index a6d73c6055..2b54215531 100644
--- a/main/sd/source/ui/annotations/annotationmanager.cxx
+++ b/main/sd/source/ui/annotations/annotationmanager.cxx
@@ -494,7 +494,7 @@ void AnnotationManagerImpl::ExecuteReplyToAnnotation( SfxRequest& rReq )
 	        aAnswerSet.Put(SvxPostureItem(ITALIC_NORMAL,EE_CHAR_ITALIC));	    
     	    
 	        ESelection aSel;
-	        aSel.nEndPara = (sal_uInt16)pOutliner->GetParagraphCount()-2;
+	        aSel.nEndPara = pOutliner->GetParagraphCount()-2;
 	        aSel.nEndPos = pOutliner->GetText( pOutliner->GetParagraph( aSel.nEndPara ) ).Len();
     	    
             pOutliner->QuickSetAttribs( aAnswerSet, aSel );
diff --git a/main/sd/source/ui/annotations/annotationwindow.cxx b/main/sd/source/ui/annotations/annotationwindow.cxx
index d362983fa2..6702388e62 100644
--- a/main/sd/source/ui/annotations/annotationwindow.cxx
+++ b/main/sd/source/ui/annotations/annotationwindow.cxx
@@ -398,7 +398,7 @@ void AnnotationWindow::InitControls()
 
 void AnnotationWindow::StartEdit()
 {
-    getView()->SetSelection(ESelection(0xFFFF,0xFFFF,0xFFFF,0xFFFF));
+    getView()->SetSelection(ESelection(EE_PARA_MAX, EE_INDEX_MAX));
     getView()->ShowCursor();
 }
 
@@ -505,7 +505,7 @@ void AnnotationWindow::SetLanguage(const SvxLanguageItem aNewItem)
 	Engine()->SetModifyHdl( Link() );
 	ESelection aOld = getView()->GetSelection();
 
-    ESelection aNewSelection( 0, 0, (sal_uInt16)Engine()->GetParagraphCount()-1, USHRT_MAX );
+    ESelection aNewSelection( 0, 0, Engine()->GetParagraphCount()-1, USHRT_MAX );
 	getView()->SetSelection( aNewSelection );
 	SfxItemSet aEditAttr(getView()->GetAttribs());
 	aEditAttr.Put(aNewItem);
diff --git a/main/sd/source/ui/dlg/dlgassim.cxx b/main/sd/source/ui/dlg/dlgassim.cxx
index 823c59be3b..775a700094 100644
--- a/main/sd/source/ui/dlg/dlgassim.cxx
+++ b/main/sd/source/ui/dlg/dlgassim.cxx
@@ -153,7 +153,7 @@ void SdPageListControl::Fill( SdDrawDocument* pDoc )
 					for (sal_uLong nPara = 0; nPara < nCount; nPara++)
 					{
 						pPara = pOutliner->GetParagraph(nPara);
-						if(pPara && pOutliner->GetDepth( (sal_uInt16) nPara ) == 0 )
+						if(pPara && pOutliner->GetDepth( nPara ) == 0 )
 						{
 							String aParaText = pOutliner->GetText(pPara);
 							if(aParaText.Len() != 0)
diff --git a/main/sd/source/ui/dlg/headerfooterdlg.cxx b/main/sd/source/ui/dlg/headerfooterdlg.cxx
index 00681c5e77..1f03c31829 100644
--- a/main/sd/source/ui/dlg/headerfooterdlg.cxx
+++ b/main/sd/source/ui/dlg/headerfooterdlg.cxx
@@ -729,7 +729,7 @@ void HeaderFooterTabPage::GetOrSetDateTimeLanguage( LanguageType &rLanguage, boo
 		}
 
 		// and set it, or just get it from the handout master page
-// bug119985 2012.06.14
+// bug119985 2012.06.14
 		GetOrSetDateTimeLanguage( rLanguage, bSet, mpDoc->GetMasterSdPage( 0, PK_NOTES ) );
 	}
 	else
@@ -767,8 +767,8 @@ void HeaderFooterTabPage::GetOrSetDateTimeLanguage( LanguageType &rLanguage, boo
 			EFieldInfo aFieldInfo;
 			aFieldInfo.pFieldItem = NULL;
 
-			sal_uInt16 nParaCount = pEdit->GetParagraphCount();
-			sal_uInt16 nPara;
+			sal_uInt32 nParaCount = pEdit->GetParagraphCount();
+			sal_uInt32 nPara;
 			for( nPara = 0; (nPara < nParaCount) && (aFieldInfo.pFieldItem == NULL); nPara++ )
 			{
 				sal_uInt16 nFieldCount = pEdit->GetFieldCount( nPara );
@@ -780,7 +780,7 @@ void HeaderFooterTabPage::GetOrSetDateTimeLanguage( LanguageType &rLanguage, boo
 					{
 						const SvxFieldData* pFieldData = aFieldInfo.pFieldItem->GetField();
 // bug119985 2012.06.14
-						if( pFieldData && (pFieldData->ISA( SvxDateTimeField ) || pFieldData->ISA( SvxDateField )) )
+						if( pFieldData && (pFieldData->ISA( SvxDateTimeField ) || pFieldData->ISA( SvxDateField )) )
 						{
 							break;
 						}
diff --git a/main/sd/source/ui/func/fuexpand.cxx b/main/sd/source/ui/func/fuexpand.cxx
index c3bf36b4e4..4f4d573cf2 100644
--- a/main/sd/source/ui/func/fuexpand.cxx
+++ b/main/sd/source/ui/func/fuexpand.cxx
@@ -131,7 +131,7 @@ void FuExpandPage::DoExecute( SfxRequest& )
 			SfxItemSet aEmptyEEAttr(mpDoc->GetPool(), EE_ITEMS_START, EE_ITEMS_END);
 			sal_uLong nParaCount1 = pOutl->GetParagraphCount();
 
-			for (sal_uInt16 nPara = 0; nPara < nParaCount1; nPara++)
+			for (sal_uInt32 nPara = 0; nPara < nParaCount1; nPara++)
 			{
 				pOutl->QuickRemoveCharAttribs(nPara);
 				pOutl->SetParaAttribs(nPara, aEmptyEEAttr);
@@ -143,7 +143,7 @@ void FuExpandPage::DoExecute( SfxRequest& )
 			while (pPara)
 			{
 				sal_uLong nParaPos = pOutl->GetAbsPos( pPara );
-				sal_Int16 nDepth = pOutl->GetDepth( (sal_uInt16) nParaPos );
+				sal_Int16 nDepth = pOutl->GetDepth( nParaPos );
 				if ( nDepth == 0 )
 				{
 					// Seite mit Titel & Gliederung!
@@ -239,7 +239,7 @@ void FuExpandPage::DoExecute( SfxRequest& )
 						{
 							pTempOutl->SetDepth (
                                 pTempOutl->GetParagraph( nPara ), 
-                                pTempOutl->GetDepth((sal_uInt16) nPara ) - 1);
+                                pTempOutl->GetDepth( nPara ) - 1);
 						}
 
 						delete pOPO;
diff --git a/main/sd/source/ui/func/fuinsfil.cxx b/main/sd/source/ui/func/fuinsfil.cxx
index 624f3fd481..022463fa2f 100644
--- a/main/sd/source/ui/func/fuinsfil.cxx
+++ b/main/sd/source/ui/func/fuinsfil.cxx
@@ -714,7 +714,7 @@ void FuInsertFile::InsTextOrRTFinOlMode(SfxMedium* pMedium)
 		while (pSourcePara)
 		{
 			sal_uLong nPos = pOutliner->GetAbsPos( pSourcePara );
-			sal_Int16 nDepth = pOutliner->GetDepth( (sal_uInt16) nPos );
+			sal_Int16 nDepth = pOutliner->GetDepth( nPos );
 
 			// den letzte Absatz nur uebernehmen, wenn er gefuellt ist
 			if (nSourcePos < nParaCount - 1 ||
diff --git a/main/sd/source/ui/func/fuprobjs.cxx b/main/sd/source/ui/func/fuprobjs.cxx
index debecca0a1..c1330c2c25 100644
--- a/main/sd/source/ui/func/fuprobjs.cxx
+++ b/main/sd/source/ui/func/fuprobjs.cxx
@@ -100,12 +100,12 @@ void FuPresentationObjects::DoExecute( SfxRequest& )
 	::Outliner* pOutl = pOutlinerView->GetOutliner();
 	List* pList = pOutlinerView->CreateSelectionList();
 	Paragraph* pPara = (Paragraph*)pList->First();
-	nDepth = pOutl->GetDepth((sal_uInt16)pOutl->GetAbsPos( pPara ) );
+	nDepth = pOutl->GetDepth( pOutl->GetAbsPos( pPara ) );
 	bool bPage = pOutl->HasParaFlag( pPara, PARAFLAG_ISPAGE );
 
 	while( pPara )
 	{
-		nTmp = pOutl->GetDepth((sal_uInt16) pOutl->GetAbsPos( pPara ) );
+		nTmp = pOutl->GetDepth( pOutl->GetAbsPos( pPara ) );
 
 		if( nDepth != nTmp )
 		{
diff --git a/main/sd/source/ui/func/fusumry.cxx b/main/sd/source/ui/func/fusumry.cxx
index 5147153357..b3b5d023ce 100644
--- a/main/sd/source/ui/func/fusumry.cxx
+++ b/main/sd/source/ui/func/fusumry.cxx
@@ -210,7 +210,7 @@ void FuSummaryPage::DoExecute( SfxRequest& )
 		SfxItemSet aEmptyEEAttr(mpDoc->GetPool(), EE_ITEMS_START, EE_ITEMS_END);
 		sal_uLong nParaCount = pOutl->GetParagraphCount();
 
-		for (sal_uInt16 nPara = 0; nPara < nParaCount; nPara++)
+		for (sal_uInt32 nPara = 0; nPara < nParaCount; nPara++)
 		{
 			pOutl->SetStyleSheet( nPara, pStyle );
 			pOutl->QuickRemoveCharAttribs(nPara);
diff --git a/main/sd/source/ui/notes/EditWindow.cxx b/main/sd/source/ui/notes/EditWindow.cxx
index bf7fa7b486..227bb85e87 100644
--- a/main/sd/source/ui/notes/EditWindow.cxx
+++ b/main/sd/source/ui/notes/EditWindow.cxx
@@ -697,8 +697,7 @@ void EditWindow::SelectAll()
 	DBG_ASSERT( mpEditView, "NULL pointer" );
 	if (mpEditView)
 	{
-		// 0xFFFF as last two parameters refers to the end of the text
-		mpEditView->SetSelection( ESelection( 0, 0, 0xFFFF, 0xFFFF ) );
+		mpEditView->SetSelection( ESelection( 0, 0, EE_PARA_MAX, EE_INDEX_MAX ) );
 	}
 }
 
@@ -727,7 +726,7 @@ void EditWindow::SelNextMark()
         sal_uInt16     Pos        = eSelection.nEndPos;
         String     aMark (UniString::CreateFromAscii("<?>"));
         String     aText;
-        sal_uInt16     nCounts    = pEditEngine->GetParagraphCount();
+        sal_uInt32     nCounts    = pEditEngine->GetParagraphCount();
 
         while (eSelection.nEndPara < nCounts)
         {
@@ -758,7 +757,7 @@ void EditWindow::SelPrevMark()
         xub_StrLen Max        = eSelection.nStartPos;
         String     Text( pEditEngine->GetText( eSelection.nStartPara ) );
         String     aMark (UniString::CreateFromAscii("<?>"));
-        sal_uInt16     nCounts    = pEditEngine->GetParagraphCount();
+        sal_uInt32     nCounts    = pEditEngine->GetParagraphCount();
 
         do
         {
diff --git a/main/sd/source/ui/unoidl/unosrch.cxx b/main/sd/source/ui/unoidl/unosrch.cxx
index 4c971447d2..b441f630ad 100644
--- a/main/sd/source/ui/unoidl/unosrch.cxx
+++ b/main/sd/source/ui/unoidl/unosrch.cxx
@@ -611,8 +611,8 @@ uno::Reference< text::XTextRange >  SdUnoSearchReplaceShape::Search( uno::Refere
 	{
 		if( nStartPos <= nTextLen && nEndPos <= nTextLen )
 		{
-			ESelection aSelection( (sal_uInt16)pConvertPara[nStartPos], (sal_uInt16)pConvertPos[nStartPos],
-							 (sal_uInt16)pConvertPara[nEndPos], (sal_uInt16)pConvertPos[nEndPos] );
+			ESelection aSelection( (sal_uInt32)pConvertPara[nStartPos], (sal_uInt16)pConvertPos[nStartPos],
+							 (sal_uInt32)pConvertPara[nEndPos], (sal_uInt16)pConvertPos[nEndPos] );
 			SvxUnoTextRange *pRange;
 
 			SvxUnoTextBase* pParent = SvxUnoTextBase::getImplementation( xParent );
diff --git a/main/sd/source/ui/view/DocumentRenderer.cxx b/main/sd/source/ui/view/DocumentRenderer.cxx
index 078d070868..22a9e4d030 100644
--- a/main/sd/source/ui/view/DocumentRenderer.cxx
+++ b/main/sd/source/ui/view/DocumentRenderer.cxx
@@ -1820,7 +1820,7 @@ private:
                     for (sal_Int32 nPara=nParaCount1; nPara<nParaCount2; ++nPara)
                     {
                         Paragraph* pP = pOutliner->GetParagraph(nPara);
-                        if (pP!=NULL && pOutliner->GetDepth((sal_uInt16)nPara) > 0)
+                        if (pP!=NULL && pOutliner->GetDepth(nPara) > 0)
                             pOutliner->SetDepth(pP, 0);
                     }
                 }
diff --git a/main/sd/source/ui/view/Outliner.cxx b/main/sd/source/ui/view/Outliner.cxx
index 226dedff54..2f230e0baa 100644
--- a/main/sd/source/ui/view/Outliner.cxx
+++ b/main/sd/source/ui/view/Outliner.cxx
@@ -1431,7 +1431,7 @@ ESelection Outliner::GetSearchStartPosition (void)
     {
         // Retrieve the position after the last character in the last
         // paragraph.
-        sal_uInt16 nParagraphCount = static_cast<sal_uInt16>(GetParagraphCount());
+        sal_uInt32 nParagraphCount = GetParagraphCount();
         if (nParagraphCount == 0)
             aPosition = ESelection();
         else
diff --git a/main/sd/source/ui/view/drawview.cxx b/main/sd/source/ui/view/drawview.cxx
index 230098fc72..34bba0f450 100644
--- a/main/sd/source/ui/view/drawview.cxx
+++ b/main/sd/source/ui/view/drawview.cxx
@@ -224,7 +224,7 @@ sal_Bool DrawView::SetAttributes(const SfxItemSet& rSet,
 					while (pPara)
 					{
 						sal_uLong nParaPos = pOutliner->GetAbsPos( pPara );
-						sal_Int16 nDepth = pOutliner->GetDepth( (sal_uInt16) nParaPos );
+						sal_Int16 nDepth = pOutliner->GetDepth( nParaPos );
 						String aName(rPage.GetLayoutName());
 						aName += (sal_Unicode)(' ');
 						aName += String::CreateFromInt32( (nDepth <= 0) ? 1 : nDepth + 1 );
@@ -264,7 +264,7 @@ sal_Bool DrawView::SetAttributes(const SfxItemSet& rSet,
 						pPara = (Paragraph*)pList->Prev();
 
 						if( !pPara && nDepth > 0 &&  rSet.GetItemState( EE_PARA_NUMBULLET ) == SFX_ITEM_ON &&
-						    pOutliner->GetDepth( (sal_uInt16) pOutliner->GetAbsPos( (Paragraph*) pList->First() ) ) > 0 )
+						    pOutliner->GetDepth( pOutliner->GetAbsPos( (Paragraph*) pList->First() ) ) > 0 )
 							pPara = pOutliner->GetParagraph( 0 );  // Put NumBulletItem in outline level 1
 					}
 
diff --git a/main/sd/source/ui/view/drtxtob.cxx b/main/sd/source/ui/view/drtxtob.cxx
index d7e0fa2573..f04c7c339f 100644
--- a/main/sd/source/ui/view/drtxtob.cxx
+++ b/main/sd/source/ui/view/drtxtob.cxx
@@ -313,7 +313,7 @@ void TextObjectBar::GetAttrState( SfxItemSet& rSet )
 
 					while (pPara)
 					{
-						sal_Int16 nDepth = pOutl->GetDepth( (sal_uInt16) pOutl->GetAbsPos( pPara ) );
+						sal_Int16 nDepth = pOutl->GetDepth( pOutl->GetAbsPos( pPara ) );
 
 						if (nDepth > 0 || (bOutlineViewSh && (nDepth <= 0) && !pOutl->HasParaFlag( pPara, PARAFLAG_ISPAGE )) )
 						{
@@ -473,7 +473,7 @@ void TextObjectBar::GetAttrState( SfxItemSet& rSet )
 			long nUpper = 0L;
 			for( sal_uLong nPara = nStartPara; nPara <= nEndPara; nPara++ )
 			{
-				const SfxItemSet& rItems = pOLV->GetOutliner()->GetParaAttribs( (sal_uInt16)nPara );
+				const SfxItemSet& rItems = pOLV->GetOutliner()->GetParaAttribs( nPara );
                 const SvxULSpaceItem& rItem = (const SvxULSpaceItem&) rItems.Get( EE_PARA_ULSPACE );
 				nUpper = Max( nUpper, (long)rItem.GetUpper() );
 			}
diff --git a/main/sd/source/ui/view/drtxtob1.cxx b/main/sd/source/ui/view/drtxtob1.cxx
index fda99e0c46..0d1811abcd 100644
--- a/main/sd/source/ui/view/drtxtob1.cxx
+++ b/main/sd/source/ui/view/drtxtob1.cxx
@@ -159,7 +159,7 @@ void TextObjectBar::Execute( SfxRequest &rReq )
                     if (pStyleSheet != NULL)
                     {
                         SfxItemSet aAttr( pStyleSheet->GetItemSet() );
-                        SfxItemSet aTmpSet( pOLV->GetOutliner()->GetParaAttribs( (sal_uInt16) nPara ) );
+                        SfxItemSet aTmpSet( pOLV->GetOutliner()->GetParaAttribs( nPara ) );
                         aAttr.Put( aTmpSet, sal_False ); // sal_False= InvalidItems nicht als Default, sondern als "Loecher" betrachten
                         const SvxULSpaceItem& rItem = (const SvxULSpaceItem&) aAttr.Get( EE_PARA_ULSPACE );
                         SvxULSpaceItem* pNewItem = (SvxULSpaceItem*) rItem.Clone();
@@ -187,7 +187,7 @@ void TextObjectBar::Execute( SfxRequest &rReq )
                         SfxItemSet aNewAttrs( aAttr );
                         aNewAttrs.Put( *pNewItem );
                         delete pNewItem;
-                        pOLV->GetOutliner()->SetParaAttribs( (sal_uInt16)nPara, aNewAttrs );
+                        pOLV->GetOutliner()->SetParaAttribs( nPara, aNewAttrs );
                     }
 				}
 			}
diff --git a/main/sd/source/ui/view/outlnvs2.cxx b/main/sd/source/ui/view/outlnvs2.cxx
index 06000d8fea..555898f0d5 100644
--- a/main/sd/source/ui/view/outlnvs2.cxx
+++ b/main/sd/source/ui/view/outlnvs2.cxx
@@ -232,7 +232,7 @@ void OutlineViewShell::FuTemporary(SfxRequest &rReq)
 			sal_uLong nParaCount = pOutl->GetParagraphCount();
 			if (nParaCount > 0)
 			{
-				pOutlinerView->SelectRange( 0, (sal_uInt16) nParaCount );
+				pOutlinerView->SelectRange( 0, nParaCount );
 			}
 			Cancel();
 		}
diff --git a/main/sd/source/ui/view/outlnvsh.cxx b/main/sd/source/ui/view/outlnvsh.cxx
index d24b4e4876..d835ddf51d 100644
--- a/main/sd/source/ui/view/outlnvsh.cxx
+++ b/main/sd/source/ui/view/outlnvsh.cxx
@@ -878,11 +878,11 @@ void OutlineViewShell::GetMenuState( SfxItemSet &rSet )
 	Paragraph* pPara = (Paragraph*)pList->First();
 
 	sal_Int16 nDepth;
-	sal_Int16 nTmpDepth = pOutl->GetDepth( (sal_uInt16) pOutl->GetAbsPos( pPara ) );
+	sal_Int16 nTmpDepth = pOutl->GetDepth( pOutl->GetAbsPos( pPara ) );
 	bool bPage = pOutl->HasParaFlag( pPara, PARAFLAG_ISPAGE );
 	while (pPara)
 	{
-		nDepth = pOutl->GetDepth( (sal_uInt16) pOutl->GetAbsPos( pPara ) );
+		nDepth = pOutl->GetDepth( pOutl->GetAbsPos( pPara ) );
 
 		if( nDepth != nTmpDepth )
 			bUnique = sal_False;
@@ -2032,10 +2032,10 @@ sal_uLong OutlineViewShell::Read(SvStream& rInput, const String& rBaseURL, sal_u
 	SfxStyleSheet* pTitleSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE );
 	SfxStyleSheet* pOutlSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_OUTLINE );
 
-	sal_uInt16 nParaCount = (sal_uInt16)pOutl->GetParagraphCount();
+	sal_uInt32 nParaCount = pOutl->GetParagraphCount();
 	if ( nParaCount > 0 )
 	{
-		for ( sal_uInt16 nPara = 0; nPara < nParaCount; nPara++ )
+		for ( sal_uInt32 nPara = 0; nPara < nParaCount; nPara++ )
 		{
 			pOlView->UpdateParagraph( nPara );
 
diff --git a/main/sd/source/ui/view/outlview.cxx b/main/sd/source/ui/view/outlview.cxx
index b10c54522e..092dd97504 100644
--- a/main/sd/source/ui/view/outlview.cxx
+++ b/main/sd/source/ui/view/outlview.cxx
@@ -764,7 +764,7 @@ IMPL_LINK( OutlineView, DepthChangedHdl, ::Outliner *, pOutliner )
 			Paragraph*	  pParagraph   = (Paragraph*)pList->First();
 			while (pParagraph)
 			{
-				if( !pOutliner->HasParaFlag( pParagraph, PARAFLAG_ISPAGE ) && (pOutliner->GetDepth( (sal_uInt16) pOutliner->GetAbsPos( pParagraph ) ) <= 0) )
+				if( !pOutliner->HasParaFlag( pParagraph, PARAFLAG_ISPAGE ) && (pOutliner->GetDepth( pOutliner->GetAbsPos( pParagraph ) ) <= 0) )
 					mnPagesToProcess++;
 				pParagraph = (Paragraph*)pList->Next();
 			}
@@ -866,7 +866,7 @@ IMPL_LINK( OutlineView, DepthChangedHdl, ::Outliner *, pOutliner )
 		}
 		pOutliner->UpdateFields();
 	}
-	else if ( (pOutliner->GetPrevDepth() == 1) && ( pOutliner->GetDepth( (sal_uInt16) pOutliner->GetAbsPos( pPara ) ) == 2 ) )
+	else if ( (pOutliner->GetPrevDepth() == 1) && ( pOutliner->GetDepth( pOutliner->GetAbsPos( pPara ) ) == 2 ) )
 	{
 		// wieviele Titel sind vor dem fraglichen Titelabsatz?
 		sal_Int32 nPos = -1L;
@@ -907,7 +907,7 @@ IMPL_LINK( OutlineView, DepthChangedHdl, ::Outliner *, pOutliner )
 		{
 			SfxStyleSheet* pStyleSheet = NULL;
 			sal_uLong nPara = pOutliner->GetAbsPos( pPara );
-			sal_Int16 nDepth = pOutliner->GetDepth( (sal_uInt16) nPara );
+			sal_Int16 nDepth = pOutliner->GetDepth( nPara );
 			bool bSubTitle = pPage->GetPresObj(PRESOBJ_TEXT) != NULL;
 
 			if( pOutliner->HasParaFlag(pPara, PARAFLAG_ISPAGE) )
@@ -934,7 +934,7 @@ IMPL_LINK( OutlineView, DepthChangedHdl, ::Outliner *, pOutliner )
 
 			// before we set the style sheet we need to preserve the bullet item
 			// since all items will be deleted while setting a new style sheet
- 			SfxItemSet aOldAttrs( pOutliner->GetParaAttribs( (sal_uInt16)nPara ) );
+ 			SfxItemSet aOldAttrs( pOutliner->GetParaAttribs( nPara ) );
 
 			pOutliner->SetStyleSheet( nPara, pStyleSheet );
 
@@ -942,9 +942,9 @@ IMPL_LINK( OutlineView, DepthChangedHdl, ::Outliner *, pOutliner )
 			if ( pOutliner->GetPrevDepth() != -1 && nDepth != -1 &&
 				 aOldAttrs.GetItemState( EE_PARA_NUMBULLET ) == SFX_ITEM_ON )
 			{
-				SfxItemSet aAttrs( pOutliner->GetParaAttribs( (sal_uInt16)nPara ) );
+				SfxItemSet aAttrs( pOutliner->GetParaAttribs( nPara ) );
 				aAttrs.Put( *aOldAttrs.GetItem( EE_PARA_NUMBULLET ) );
-				pOutliner->SetParaAttribs( (sal_uInt16)nPara, aAttrs );
+				pOutliner->SetParaAttribs( nPara, aAttrs );
 			}
 		}
 	}
@@ -1327,7 +1327,7 @@ void OutlineView::FillOutliner()
 			mpOutliner->SetDepth(pPara, -1);
 
 			// Keine harten Attribute vom vorherigen Absatz uebernehmen
-			mpOutliner->SetParaAttribs( (sal_uInt16)mpOutliner->GetAbsPos(pPara),
+			mpOutliner->SetParaAttribs( mpOutliner->GetAbsPos(pPara),
 									   mpOutliner->GetEmptyItemSet() );
 
 			mpOutliner->SetStyleSheet( mpOutliner->GetAbsPos( pPara ), pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE ) );
@@ -1355,14 +1355,14 @@ void OutlineView::FillOutliner()
 			OutlinerParaObject* pOPO = pTO->GetOutlinerParaObject();
 			if (pOPO)
 			{
-				sal_uInt16 nParaCount1 = (sal_uInt16)mpOutliner->GetParagraphCount();
+				sal_uInt32 nParaCount1 = mpOutliner->GetParagraphCount();
 				sal_Bool bVertical = pOPO->IsVertical();
 				pOPO->SetVertical( sal_False );
 				mpOutliner->AddText(*pOPO);
 				pOPO->SetVertical( bVertical );
 
-                sal_uInt16 nParaCount2 = (sal_uInt16)mpOutliner->GetParagraphCount();
-				for (sal_uInt16 n = nParaCount1; n < nParaCount2; n++)
+                sal_uInt32 nParaCount2 = mpOutliner->GetParagraphCount();
+				for (sal_uInt32 n = nParaCount1; n < nParaCount2; n++)
 				{
                     if( bSubTitle )
                     {
diff --git a/main/sd/source/ui/view/sdview.cxx b/main/sd/source/ui/view/sdview.cxx
index 069119efef..f412c60261 100644
--- a/main/sd/source/ui/view/sdview.cxx
+++ b/main/sd/source/ui/view/sdview.cxx
@@ -684,7 +684,7 @@ void View::SelectAll()
 	{
 		OutlinerView* pOLV = GetTextEditOutlinerView();
 		const ::Outliner* pOutliner = GetTextEditOutliner();
-		pOLV->SelectRange( 0, (sal_uInt16) pOutliner->GetParagraphCount() );
+		pOLV->SelectRange( 0, pOutliner->GetParagraphCount() );
 	}
 	else
 	{
@@ -1305,7 +1305,7 @@ void View::OnEndPasteOrDrop( PasteOrDropInfos* pInfos )
 			// new paragraph, depending on the paragraph depth
 			SfxStyleSheetBasePool* pStylePool = GetDoc()->GetStyleSheetPool();
 
-			for ( sal_uInt16 nPara = pInfos->nStartPara; nPara <= pInfos->nEndPara; nPara++ )
+			for ( sal_uInt32 nPara = pInfos->nStartPara; nPara <= pInfos->nEndPara; nPara++ )
 			{
 				sal_Int16 nDepth = pOutliner->GetDepth( nPara );
 
@@ -1471,7 +1471,7 @@ void View::ChangeMarkedObjectsBulletsNumbering(
                         pOutlinerView->ApplyBulletsNumbering( bHandleBullets, pNumRule, bToggle );
                     }
 					sal_uInt32 nParaCount = pOutliner->GetParagraphCount();
-					pText->SetOutlinerParaObject(pOutliner->CreateParaObject(0, (sal_uInt16)nParaCount));
+					pText->SetOutlinerParaObject(pOutliner->CreateParaObject(0, nParaCount));
 					pOutliner->Clear();
 				}
 			}
@@ -1502,7 +1502,7 @@ void View::ChangeMarkedObjectsBulletsNumbering(
                 pOutlinerView->ApplyBulletsNumbering( bHandleBullets, pNumRule, bToggle );
             }
 			sal_uInt32 nParaCount = pOutliner->GetParagraphCount();
-			pTextObj->SetOutlinerParaObject(pOutliner->CreateParaObject(0, (sal_uInt16)nParaCount));
+			pTextObj->SetOutlinerParaObject(pOutliner->CreateParaObject(0, nParaCount));
 			pOutliner->Clear();
 		}
 	}
diff --git a/main/sd/source/ui/view/sdview2.cxx b/main/sd/source/ui/view/sdview2.cxx
index 0219827cc1..283d57d594 100644
--- a/main/sd/source/ui/view/sdview2.cxx
+++ b/main/sd/source/ui/view/sdview2.cxx
@@ -341,13 +341,13 @@ void View::DoPaste (::Window* pWindow)
 					pOutliner->SetUpdateMode( sal_False );
 
 					const EditEngine& rEdit = pOutliner->GetEditEngine();
-					const int nParaCount = rEdit.GetParagraphCount();
+					const sal_uInt32 nParaCount = rEdit.GetParagraphCount();
 
-					for( int nPara = nParaCount - 2; nPara >= 0; nPara-- )
+					for( sal_Int64 nPara = nParaCount - 2; nPara >= 0; nPara-- )
 					{
-						const sal_uInt16 nParaLen = (sal_uInt16)rEdit.GetTextLen( (sal_uInt16)nPara );
-						pOutliner->QuickDelete( ESelection( (sal_uInt16)nPara, nParaLen, (sal_uInt16)nPara+1, 0 ) );
-						pOutliner->QuickInsertLineBreak( ESelection( (sal_uInt16)nPara, nParaLen, (sal_uInt16)nPara, nParaLen ) );
+						const sal_uInt16 nParaLen = (sal_uInt16)rEdit.GetTextLen( nPara );
+						pOutliner->QuickDelete( ESelection( (sal_uInt32)nPara, nParaLen, (sal_uInt32)nPara+1, 0 ) );
+						pOutliner->QuickInsertLineBreak( ESelection( (sal_uInt32)nPara, nParaLen, (sal_uInt32)nPara, nParaLen ) );
 					}
 
 					DBG_ASSERT( rEdit.GetParagraphCount() <= 1, "Titelobjekt contains hard line breaks" );
diff --git a/main/starmath/source/accessibility.cxx b/main/starmath/source/accessibility.cxx
index 592ce01d80..1e68c56413 100644
--- a/main/starmath/source/accessibility.cxx
+++ b/main/starmath/source/accessibility.cxx
@@ -1009,13 +1009,13 @@ IMPL_LINK(SmTextForwarder, NotifyHdl, EENotify*, aNotify)
     return 0;
 }
 
-sal_uInt16 SmTextForwarder::GetParagraphCount() const
+sal_uInt32 SmTextForwarder::GetParagraphCount() const
 {
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
 	return pEditEngine ? pEditEngine->GetParagraphCount() : 0;
 }
 
-sal_uInt16 SmTextForwarder::GetTextLen( sal_uInt16 nParagraph ) const
+sal_uInt16 SmTextForwarder::GetTextLen( sal_uInt32 nParagraph ) const
 {
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
 	return pEditEngine ? pEditEngine->GetTextLen( nParagraph ) : 0;
@@ -1061,7 +1061,7 @@ SfxItemSet SmTextForwarder::GetAttribs( const ESelection& rSel, sal_Bool bOnlyHa
 	}
 }
 
-SfxItemSet SmTextForwarder::GetParaAttribs( sal_uInt16 nPara ) const
+SfxItemSet SmTextForwarder::GetParaAttribs( sal_uInt32 nPara ) const
 {
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
 	DBG_ASSERT( pEditEngine, "EditEngine missing" );
@@ -1082,7 +1082,7 @@ SfxItemSet SmTextForwarder::GetParaAttribs( sal_uInt16 nPara ) const
 	return aSet;
 }
 
-void SmTextForwarder::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
+void SmTextForwarder::SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet )
 {
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
 	if (pEditEngine)
@@ -1102,7 +1102,7 @@ void SmTextForwarder::RemoveAttribs( const ESelection& rSelection, sal_Bool bRem
         pEditEngine->RemoveAttribs( rSelection, bRemoveParaAttribs, nWhich );
 }    
 
-void SmTextForwarder::GetPortions( sal_uInt16 nPara, SvUShorts& rList ) const
+void SmTextForwarder::GetPortions( sal_uInt32 nPara, SvUShorts& rList ) const
 {
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
 	if (pEditEngine)
@@ -1145,7 +1145,7 @@ sal_Bool SmTextForwarder::IsValid() const
 	return pEditEngine ? pEditEngine->GetUpdateMode() : sal_False;
 }
 
-XubString SmTextForwarder::CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
+XubString SmTextForwarder::CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
 {
 	XubString aTxt;
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
@@ -1154,7 +1154,7 @@ XubString SmTextForwarder::CalcFieldValue( const SvxFieldItem& rField, sal_uInt1
 	return aTxt;
 }
 
-void SmTextForwarder::FieldClicked(const SvxFieldItem&, sal_uInt16, sal_uInt16)
+void SmTextForwarder::FieldClicked(const SvxFieldItem&, sal_uInt32, sal_uInt16)
 {
 }
 
@@ -1167,7 +1167,7 @@ sal_uInt16 GetSvxEditEngineItemState( EditEngine& rEditEngine, const ESelection&
 	SfxItemState eState = SFX_ITEM_DEFAULT;
 
 	// check all paragraphs inside the selection
-	for( sal_uInt16 nPara = rSel.nStartPara; nPara <= rSel.nEndPara; nPara++ )
+	for( sal_uInt32 nPara = rSel.nStartPara; nPara <= rSel.nEndPara; nPara++ )
 	{
 		SfxItemState eParaState = SFX_ITEM_DEFAULT;
 
@@ -1299,7 +1299,7 @@ sal_uInt16 SmTextForwarder::GetItemState( const ESelection& rSel, sal_uInt16 nWh
 	return nState;
 }
 
-sal_uInt16 SmTextForwarder::GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich ) const
+sal_uInt16 SmTextForwarder::GetItemState( sal_uInt32 nPara, sal_uInt16 nWhich ) const
 {
 	sal_uInt16 nState = SFX_ITEM_DISABLED;
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
@@ -1311,30 +1311,30 @@ sal_uInt16 SmTextForwarder::GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich )
 	return nState;
 }
 
-LanguageType SmTextForwarder::GetLanguage( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+LanguageType SmTextForwarder::GetLanguage( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
 	return pEditEngine ? pEditEngine->GetLanguage(nPara, nIndex) : LANGUAGE_NONE;
 }
 
-sal_uInt16 SmTextForwarder::GetFieldCount( sal_uInt16 nPara ) const
+sal_uInt16 SmTextForwarder::GetFieldCount( sal_uInt32 nPara ) const
 {
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
 	return pEditEngine ? pEditEngine->GetFieldCount(nPara) : 0;
 }
 
-EFieldInfo SmTextForwarder::GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const
+EFieldInfo SmTextForwarder::GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const
 {
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
 	return pEditEngine ? pEditEngine->GetFieldInfo( nPara, nField ) : EFieldInfo();
 }
 
-EBulletInfo SmTextForwarder::GetBulletInfo( sal_uInt16 /*nPara*/ ) const
+EBulletInfo SmTextForwarder::GetBulletInfo( sal_uInt32 /*nPara*/ ) const
 {
     return EBulletInfo();
 }
 
-Rectangle SmTextForwarder::GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+Rectangle SmTextForwarder::GetCharBounds( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
 	Rectangle aRect(0,0,0,0);
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
@@ -1358,7 +1358,7 @@ Rectangle SmTextForwarder::GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex )
 	return aRect;
 }
 
-Rectangle SmTextForwarder::GetParaBounds( sal_uInt16 nPara ) const
+Rectangle SmTextForwarder::GetParaBounds( sal_uInt32 nPara ) const
 {
 	Rectangle aRect(0,0,0,0);
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
@@ -1386,7 +1386,7 @@ OutputDevice* SmTextForwarder::GetRefDevice() const
 	return pEditEngine ? pEditEngine->GetRefDevice() : 0;
 }
 
-sal_Bool SmTextForwarder::GetIndexAtPoint( const Point& rPos, sal_uInt16& nPara, sal_uInt16& nIndex ) const
+sal_Bool SmTextForwarder::GetIndexAtPoint( const Point& rPos, sal_uInt32& nPara, sal_uInt16& nIndex ) const
 {
 	sal_Bool bRes = sal_False;
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
@@ -1400,7 +1400,7 @@ sal_Bool SmTextForwarder::GetIndexAtPoint( const Point& rPos, sal_uInt16& nPara,
 	return bRes;
 }
 
-sal_Bool SmTextForwarder::GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const
+sal_Bool SmTextForwarder::GetWordIndices( sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const
 {
 	sal_Bool bRes = sal_False;
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
@@ -1421,7 +1421,7 @@ sal_Bool SmTextForwarder::GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, s
     return bRes;
 }
 
-sal_Bool SmTextForwarder::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell ) const
+sal_Bool SmTextForwarder::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool bInCell ) const
 {
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
     return pEditEngine ? 
@@ -1429,25 +1429,25 @@ sal_Bool SmTextForwarder::GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16&
 		: sal_False;
 }
 
-sal_uInt16 SmTextForwarder::GetLineCount( sal_uInt16 nPara ) const
+sal_uInt16 SmTextForwarder::GetLineCount( sal_uInt32 nPara ) const
 {
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
 	return pEditEngine ? pEditEngine->GetLineCount(nPara) : 0;
 }
 
-sal_uInt16 SmTextForwarder::GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const
+sal_uInt16 SmTextForwarder::GetLineLen( sal_uInt32 nPara, sal_uInt16 nLine ) const
 {
 	EditEngine *pEditEngine = rEditAcc.GetEditEngine();
 	return pEditEngine ? pEditEngine->GetLineLen(nPara, nLine) : 0;
 }
     
-void SmTextForwarder::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nPara, sal_uInt16 nLine ) const
+void SmTextForwarder::GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nPara, sal_uInt16 nLine ) const
 {
     EditEngine *pEditEngine = rEditAcc.GetEditEngine();
     pEditEngine->GetLineBoundaries(rStart, rEnd, nPara, nLine);
 }    
 
-sal_uInt16 SmTextForwarder::GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const
+sal_uInt16 SmTextForwarder::GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const
 {
     EditEngine *pEditEngine = rEditAcc.GetEditEngine();
     return pEditEngine ? pEditEngine->GetLineNumberAtIndex(nPara, nIndex) : 0;
@@ -1465,13 +1465,13 @@ sal_Bool SmTextForwarder::QuickFormatDoc( sal_Bool /*bFull*/ )
     return bRes;
 }
 
-sal_Int16 SmTextForwarder::GetDepth( sal_uInt16 /*nPara*/ ) const
+sal_Int16 SmTextForwarder::GetDepth( sal_uInt32 /*nPara*/ ) const
 {
     // math has no outliner...
     return -1;
 }
 
-sal_Bool SmTextForwarder::SetDepth( sal_uInt16 /*nPara*/, sal_Int16 nNewDepth )
+sal_Bool SmTextForwarder::SetDepth( sal_uInt32 /*nPara*/, sal_Int16 nNewDepth )
 {
     // math has no outliner...
     return -1 == nNewDepth;  // is it the value from 'GetDepth' ?
@@ -1520,12 +1520,12 @@ void SmTextForwarder::AppendParagraph()
     EditEngine *pEditEngine = rEditAcc.GetEditEngine();
     if (pEditEngine)
     {
-        sal_uInt16 nParaCount = pEditEngine->GetParagraphCount();
+        sal_uInt32 nParaCount = pEditEngine->GetParagraphCount();
         pEditEngine->InsertParagraph( nParaCount, String() );
     }
 }
 
-xub_StrLen SmTextForwarder::AppendTextPortion( sal_uInt16 nPara, const String &rText, const SfxItemSet &rSet )
+xub_StrLen SmTextForwarder::AppendTextPortion( sal_uInt32 nPara, const String &rText, const SfxItemSet &rSet )
 {
     xub_StrLen nRes = 0;
     EditEngine *pEditEngine = rEditAcc.GetEditEngine();
diff --git a/main/starmath/source/accessibility.hxx b/main/starmath/source/accessibility.hxx
index eed34e815b..5008599359 100644
--- a/main/starmath/source/accessibility.hxx
+++ b/main/starmath/source/accessibility.hxx
@@ -212,17 +212,17 @@ public:
     SmTextForwarder( SmEditAccessible& rAcc, SmEditSource & rSource );
     virtual ~SmTextForwarder();
 
-	virtual sal_uInt16		GetParagraphCount() const;
-	virtual sal_uInt16		GetTextLen( sal_uInt16 nParagraph ) const;
+	virtual sal_uInt32		GetParagraphCount() const;
+	virtual sal_uInt16		GetTextLen( sal_uInt32 nParagraph ) const;
 	virtual String		GetText( const ESelection& rSel ) const;
 	virtual SfxItemSet	GetAttribs( const ESelection& rSel, sal_Bool bOnlyHardAttrib = EditEngineAttribs_All ) const;
-	virtual	SfxItemSet	GetParaAttribs( sal_uInt16 nPara ) const;
-	virtual void		SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet );
+	virtual	SfxItemSet	GetParaAttribs( sal_uInt32 nPara ) const;
+	virtual void		SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet );
     virtual void        RemoveAttribs( const ESelection& rSelection, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich );
-	virtual void		GetPortions( sal_uInt16 nPara, SvUShorts& rList ) const;
+	virtual void		GetPortions( sal_uInt32 nPara, SvUShorts& rList ) const;
 
 	virtual sal_uInt16		GetItemState( const ESelection& rSel, sal_uInt16 nWhich ) const;
-	virtual sal_uInt16		GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich ) const;
+	virtual sal_uInt16		GetItemState( sal_uInt32 nPara, sal_uInt16 nWhich ) const;
 
 	virtual void		QuickInsertText( const String& rText, const ESelection& rSel );
 	virtual void		QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel );
@@ -231,36 +231,36 @@ public:
 
 	virtual SfxItemPool* GetPool() const;
 
-	virtual XubString    CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor );
-	virtual void 		FieldClicked(const SvxFieldItem&, sal_uInt16, sal_uInt16);
+	virtual XubString    CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor );
+	virtual void 		FieldClicked(const SvxFieldItem&, sal_uInt32, sal_uInt16);
 	virtual sal_Bool		 IsValid() const;
 
-    virtual LanguageType 	GetLanguage( sal_uInt16, sal_uInt16 ) const;
-    virtual sal_uInt16			GetFieldCount( sal_uInt16 nPara ) const;
-    virtual EFieldInfo		GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const;
-    virtual EBulletInfo     GetBulletInfo( sal_uInt16 nPara ) const;
-    virtual Rectangle		GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
-    virtual Rectangle		GetParaBounds( sal_uInt16 nPara ) const;
+    virtual LanguageType 	GetLanguage( sal_uInt32, sal_uInt16 ) const;
+    virtual sal_uInt16			GetFieldCount( sal_uInt32 nPara ) const;
+    virtual EFieldInfo		GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const;
+    virtual EBulletInfo     GetBulletInfo( sal_uInt32 nPara ) const;
+    virtual Rectangle		GetCharBounds( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
+    virtual Rectangle		GetParaBounds( sal_uInt32 nPara ) const;
     virtual MapMode			GetMapMode() const;
 	virtual OutputDevice*	GetRefDevice() const;
-    virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt16& nPara, sal_uInt16& nIndex ) const;
-    virtual sal_Bool		GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
-	virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
-    virtual sal_uInt16		GetLineCount( sal_uInt16 nPara ) const;
-    virtual sal_uInt16		GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const;
-    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
-    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nLine ) const;
+    virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt32& nPara, sal_uInt16& nIndex ) const;
+    virtual sal_Bool		GetWordIndices( sal_uInt32 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
+	virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt32 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
+    virtual sal_uInt16		GetLineCount( sal_uInt32 nPara ) const;
+    virtual sal_uInt16		GetLineLen( sal_uInt32 nPara, sal_uInt16 nLine ) const;
+    virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nParagraph, sal_uInt16 nLine ) const;
+    virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nLine ) const;
     virtual sal_Bool		Delete( const ESelection& );
     virtual sal_Bool		InsertText( const String&, const ESelection& );
     virtual sal_Bool		QuickFormatDoc( sal_Bool bFull=sal_False );
 
-    virtual sal_Int16       GetDepth( sal_uInt16 nPara ) const;
-    virtual sal_Bool        SetDepth( sal_uInt16 nPara, sal_Int16 nNewDepth );
+    virtual sal_Int16       GetDepth( sal_uInt32 nPara ) const;
+    virtual sal_Bool        SetDepth( sal_uInt32 nPara, sal_Int16 nNewDepth );
     
     virtual const SfxItemSet*   GetEmptyItemSetPtr();
     // implementation functions for XParagraphAppend and XTextPortionAppend
     virtual void        AppendParagraph();
-    virtual xub_StrLen  AppendTextPortion( sal_uInt16 nPara, const String &rText, const SfxItemSet &rSet );
+    virtual xub_StrLen  AppendTextPortion( sal_uInt32 nPara, const String &rText, const SfxItemSet &rSet );
     
     virtual void        CopyText(const SvxTextForwarder& rSource); 
 };
diff --git a/main/starmath/source/edit.cxx b/main/starmath/source/edit.cxx
index 8cda6c5e11..2443a0a432 100644
--- a/main/starmath/source/edit.cxx
+++ b/main/starmath/source/edit.cxx
@@ -698,8 +698,7 @@ void SmEditWindow::SelectAll()
 	DBG_ASSERT( pEditView, "NULL pointer" );
 	if (pEditView)
 	{
-		// 0xFFFF as last two parameters refers to the end of the text
-		pEditView->SetSelection( ESelection( 0, 0, 0xFFFF, 0xFFFF ) );
+		pEditView->SetSelection( ESelection( 0, 0, EE_PARA_MAX, EE_INDEX_MAX ) );
 	}
 }
 
@@ -761,7 +760,7 @@ void SmEditWindow::SelNextMark()
         sal_uInt16     Pos        = eSelection.nEndPos;
         String     aMark (C2S("<?>"));
         String     aText;
-        sal_uInt16     nCounts    = pEditEngine->GetParagraphCount();
+        sal_uInt32     nCounts    = pEditEngine->GetParagraphCount();
 
         while (eSelection.nEndPara < nCounts)
         {
diff --git a/main/svx/inc/svx/svdomeas.hxx b/main/svx/inc/svx/svdomeas.hxx
index 8122121ec3..0c446d99bd 100644
--- a/main/svx/inc/svx/svdomeas.hxx
+++ b/main/svx/inc/svx/svdomeas.hxx
@@ -148,7 +148,7 @@ public:
 	virtual void NbcSetOutlinerParaObject(OutlinerParaObject* pTextObject);
 	virtual OutlinerParaObject* GetOutlinerParaObject() const;
 
-	virtual FASTBOOL CalcFieldValue(const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos,
+	virtual FASTBOOL CalcFieldValue(const SvxFieldItem& rField, sal_uInt32 nPara, sal_uInt16 nPos,
 		FASTBOOL bEdit, Color*& rpTxtColor, Color*& rpFldColor, String& rRet) const;
 
     // #i97878#
diff --git a/main/svx/inc/svx/svdotext.hxx b/main/svx/inc/svx/svdotext.hxx
index 5df8e829ae..f0e607e3a4 100644
--- a/main/svx/inc/svx/svdotext.hxx
+++ b/main/svx/inc/svx/svdotext.hxx
... 803 lines suppressed ...