diff -pur sc.orig/inc/sc.hrc sc/inc/sc.hrc
--- sc.orig/inc/sc.hrc	2006-11-15 18:58:34.000000000 +0100
+++ sc/inc/sc.hrc	2006-12-04 16:17:26.000000000 +0100
@@ -1587,6 +1587,9 @@
 #define RID_SCDLG_DPSHOWDETAIL          (SC_DIALOGS_START + 137)
 
 #define SID_PIVOT_AFMT					(SC_DIALOGS_START + 133)
+
+#define RID_SCDLG_CHANGES_MODAL				(SC_DIALOGS_START + 139)
+
 #define SC_DIALOGS_END          (SC_DIALOGS_START + 150)
 
 #ifndef STD_MASKCOLOR
diff -pur sc.orig/source/ui/inc/acredlin.hxx sc/source/ui/inc/acredlin.hxx
--- sc.orig/source/ui/inc/acredlin.hxx	2006-02-06 14:05:09.000000000 +0100
+++ sc/source/ui/inc/acredlin.hxx	2006-12-04 16:28:25.000000000 +0100
@@ -160,9 +160,10 @@ typedef	long LExpNum;
 //DECLARE_TABLE( ScChgTrackExps, LExpNum)
 //==================================================================
 
-class ScAcceptChgDlg : public SfxModelessDialog
+class ScChangeAcceptUI
 {
 private:
+	Dialog*					pDialog;
 
 	Timer					aSelectionTimer;
 	Timer					aReOpenTimer;
@@ -227,13 +228,8 @@ private:
 	DECL_LINK( ReOpenTimerHdl, Timer*);
 	DECL_LINK( ColCompareHdl, SvSortData*);
 
-
-
 protected:
 
-	virtual void	Resize();
-	virtual BOOL	Close();
-
 	void			RejectFiltered();
 	void			AcceptFiltered();
 
@@ -279,20 +275,54 @@ protected:
 							SvLBoxEntry* pEntry, BOOL bFilter=FALSE);
 
 public:
+					ScChangeAcceptUI( Dialog* ptrDialog, ScViewData* ptrViewData );
+	virtual			~ScChangeAcceptUI();
+
+	void			ReInit( ScViewData* ptrViewData );
+
+	void			Initialize( const String& rExtraData );
+	void			FillInfo( String& rExtraData ) const;
+	void			Resize();
+	void			Update();
+};
+
+class ScAcceptChgDlg : public SfxModelessDialog
+{
+	ScChangeAcceptUI* pImpl;
+    
+protected:
+	virtual void	Resize();
+	virtual BOOL	Close();
+
+public:
 					ScAcceptChgDlg( SfxBindings* pB, SfxChildWindow* pCW, Window* pParent,
-							   ScViewData*		ptrViewData);
+									ScViewData* ptrViewData );
 
-					~ScAcceptChgDlg();
+	virtual			~ScAcceptChgDlg();
 
-	void			ReInit(ScViewData* ptrViewData);
+	void			ReInit( ScViewData* ptrViewData );
 
 	virtual long	PreNotify( NotifyEvent& rNEvt );
 
-	void			Initialize (SfxChildWinInfo* pInfo);
-	virtual void    FillInfo(SfxChildWinInfo&) const;
-
+	void			Initialize( SfxChildWinInfo* pInfo );
+	virtual void    FillInfo( SfxChildWinInfo& ) const;
 };
 
+class ScAcceptChgModalDlg : public SfxModalDialog
+{
+	ScChangeAcceptUI* pImpl;
+    
+protected:
+	virtual void	Resize();
+//	virtual BOOL	Close();
+
+public:
+					ScAcceptChgModalDlg( Window *pParent, ScViewData* ptrViewData );
+					~ScAcceptChgModalDlg();
+
+//	void			AcceptAll( BOOL bAccept );
+//	virtual void	Activate();
+};
 
 #endif // SC_NAMEDLG_HXX
 
diff -pur sc.orig/source/ui/miscdlgs/acredlin.cxx sc/source/ui/miscdlgs/acredlin.cxx
--- sc.orig/source/ui/miscdlgs/acredlin.cxx	2006-10-12 17:30:56.000000000 +0200
+++ sc/source/ui/miscdlgs/acredlin.cxx	2006-12-04 16:24:18.000000000 +0100
@@ -120,14 +120,13 @@ ScRedlinData::~ScRedlinData()
 
 
 //============================================================================
-//	class ScAcceptChgDlg
+//	class ScChangeAcceptUI
 //----------------------------------------------------------------------------
-ScAcceptChgDlg::ScAcceptChgDlg( SfxBindings* pB, SfxChildWindow* pCW, Window* pParent,
-					  ScViewData*		ptrViewData)
+ScChangeAcceptUI::ScChangeAcceptUI( Dialog* ptrDialog, ScViewData* ptrViewData )
 
-	:	SfxModelessDialog( pB, pCW, pParent, ScResId(RID_SCDLG_CHANGES) ),
+	:	pDialog					( ptrDialog ),
 		//
-		aAcceptChgCtr			( this, ScResId( CTR_REDLINING ) ),
+		aAcceptChgCtr			( pDialog, ScResId( CTR_REDLINING ) ),
 		//
 		pViewData		( ptrViewData ),
 		pDoc			( ptrViewData->GetDocument() ),
@@ -151,8 +150,7 @@ ScAcceptChgDlg::ScAcceptChgDlg( SfxBindi
 		aStrChildOrgContent		( ScResId( STR_CHILD_ORGCONTENT)),
 		aStrEmpty				( ScResId( STR_EMPTY		))
 {
-	FreeResource();
-//	bScAcceptChgDlgIsDead=FALSE;
+//	bScChangeAcceptUIIsDead=FALSE;
 	bNoSelection=FALSE;
 	bNeedsUpdate=FALSE;
 	bIgnoreMsg=FALSE;
@@ -163,7 +161,7 @@ ScAcceptChgDlg::ScAcceptChgDlg( SfxBindi
 	bHasFilterEntry=FALSE;
 	bUseColor=FALSE;
 	aReOpenTimer.SetTimeout(50);
-	aReOpenTimer.SetTimeoutHdl(LINK( this, ScAcceptChgDlg, ReOpenTimerHdl ));
+	aReOpenTimer.SetTimeoutHdl(LINK( this, ScChangeAcceptUI, ReOpenTimerHdl ));
 
 	//	dialog is now only hidden, not deleted, on switching views,
 	//	so there's no need to restore settings when reopening
@@ -171,37 +169,37 @@ ScAcceptChgDlg::ScAcceptChgDlg( SfxBindi
 	MinSize=aAcceptChgCtr.GetMinSizePixel();
 	MinSize.Height()+=2;
 	MinSize.Width()+=2;
-	SetMinOutputSizePixel(MinSize);
+	pDialog->SetMinOutputSizePixel( MinSize );
 	aUnknown.AssignAscii(RTL_CONSTASCII_STRINGPARAM("Unknown"));
 
 	pTPFilter=aAcceptChgCtr.GetFilterPage();
 	pTPView=aAcceptChgCtr.GetViewPage();
 	pTheView=pTPView->GetTableControl();
 	aSelectionTimer.SetTimeout(100);
-	aSelectionTimer.SetTimeoutHdl(LINK( this, ScAcceptChgDlg, UpdateSelectionHdl ));
+	aSelectionTimer.SetTimeoutHdl(LINK( this, ScChangeAcceptUI, UpdateSelectionHdl ));
 
-	pTPFilter->SetReadyHdl(LINK( this, ScAcceptChgDlg, FilterHandle ));
-	pTPFilter->SetRefHdl(LINK( this, ScAcceptChgDlg, RefHandle ));
-	pTPFilter->SetModifyHdl(LINK( this, ScAcceptChgDlg, FilterModified));
+	pTPFilter->SetReadyHdl(LINK( this, ScChangeAcceptUI, FilterHandle ));
+	pTPFilter->SetRefHdl(LINK( this, ScChangeAcceptUI, RefHandle ));
+	pTPFilter->SetModifyHdl(LINK( this, ScChangeAcceptUI, FilterModified));
 	pTPFilter->HideRange(FALSE);
 	pTPView->InsertCalcHeader();
-	pTPView->SetRejectClickHdl( LINK( this, ScAcceptChgDlg,RejectHandle));
-	pTPView->SetAcceptClickHdl( LINK(this, ScAcceptChgDlg, AcceptHandle));
-	pTPView->SetRejectAllClickHdl( LINK( this, ScAcceptChgDlg,RejectAllHandle));
-	pTPView->SetAcceptAllClickHdl( LINK(this, ScAcceptChgDlg, AcceptAllHandle));
+	pTPView->SetRejectClickHdl( LINK( this, ScChangeAcceptUI,RejectHandle));
+	pTPView->SetAcceptClickHdl( LINK(this, ScChangeAcceptUI, AcceptHandle));
+	pTPView->SetRejectAllClickHdl( LINK( this, ScChangeAcceptUI,RejectAllHandle));
+	pTPView->SetAcceptAllClickHdl( LINK(this, ScChangeAcceptUI, AcceptAllHandle));
 	pTheView->SetCalcView();
 	pTheView->SetWindowBits(WB_HASLINES|WB_CLIPCHILDREN|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL);
-	pTheView->SetExpandingHdl( LINK(this, ScAcceptChgDlg, ExpandingHandle));
-	pTheView->SetSelectHdl( LINK(this, ScAcceptChgDlg, SelectHandle));
-	pTheView->SetDeselectHdl( LINK(this, ScAcceptChgDlg, SelectHandle));
-	pTheView->SetCommandHdl( LINK(this, ScAcceptChgDlg, CommandHdl));
-	pTheView->SetColCompareHdl( LINK(this, ScAcceptChgDlg,ColCompareHdl));
+	pTheView->SetExpandingHdl( LINK(this, ScChangeAcceptUI, ExpandingHandle));
+	pTheView->SetSelectHdl( LINK(this, ScChangeAcceptUI, SelectHandle));
+	pTheView->SetDeselectHdl( LINK(this, ScChangeAcceptUI, SelectHandle));
+	pTheView->SetCommandHdl( LINK(this, ScChangeAcceptUI, CommandHdl));
+	pTheView->SetColCompareHdl( LINK(this, ScChangeAcceptUI,ColCompareHdl));
 	pTheView->SetSelectionMode(MULTIPLE_SELECTION);
 	pTheView->SetHighlightRange(1);
 
 	Init();
 
-	aAcceptChgCtr.SetMinSizeHdl( LINK( this, ScAcceptChgDlg, MinSizeHandle ));
+	aAcceptChgCtr.SetMinSizeHdl( LINK( this, ScChangeAcceptUI, MinSizeHandle ));
 
 	UpdateView();
 	SvLBoxEntry* pEntry=pTheView->First();
@@ -210,9 +208,10 @@ ScAcceptChgDlg::ScAcceptChgDlg( SfxBindi
 		pTheView->Select(pEntry);
 	}
 }
-ScAcceptChgDlg::~ScAcceptChgDlg()
+
+ScChangeAcceptUI::~ScChangeAcceptUI()
 {
-//	bScAcceptChgDlgIsDead=TRUE;
+//	bScChangeAcceptUIIsDead=TRUE;
 	ClearView();
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
 
@@ -223,7 +222,7 @@ ScAcceptChgDlg::~ScAcceptChgDlg()
 	}
 }
 
-void ScAcceptChgDlg::ReInit(ScViewData* ptrViewData)
+void ScChangeAcceptUI::ReInit(ScViewData* ptrViewData)
 {
 	pViewData=ptrViewData;
 	if(pViewData!=NULL)
@@ -252,11 +251,80 @@ void ScAcceptChgDlg::ReInit(ScViewData* 
 	{
 		ScChangeTrack* pChanges = pDoc->GetChangeTrack();
 		if ( pChanges )
-			pChanges->SetModifiedLink( LINK( this, ScAcceptChgDlg, ChgTrackModHdl ) );
+			pChanges->SetModifiedLink( LINK( this, ScChangeAcceptUI, ChgTrackModHdl ) );
+	}
+}
+
+void ScChangeAcceptUI::Initialize( const String& rExtraData )
+{
+	if ( rExtraData.Len() )
+	{
+		xub_StrLen nPos = rExtraData.Search(
+				String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "AcceptChgDat:" ) ) );
+
+		// Versuche, den Alignment-String "ALIGN:(...)" einzulesen; wenn
+		// er nicht vorhanden ist, liegt eine "altere Version vor
+		if ( nPos != STRING_NOTFOUND )
+		{
+			xub_StrLen n1 = rExtraData.Search( '(', nPos );
+			if ( n1 != STRING_NOTFOUND )
+			{
+				xub_StrLen n2 = rExtraData.Search( ')', n1 );
+				if ( n2 != STRING_NOTFOUND )
+				{
+					// Alignment-String herausschneiden
+					String aStr = rExtraData.Copy( nPos, n2 - nPos + 1 );
+					aStr.Erase( 0, n1-nPos+1 );
+
+					if ( aStr.Len() )
+					{
+						USHORT nCount = (USHORT)aStr.ToInt32();
+
+						for ( USHORT i=0; i < nCount; i++ )
+						{
+							xub_StrLen n1 = aStr.Search( ';' );
+							aStr.Erase( 0, n1 + 1 );
+							pTheView->SetTab( i, (USHORT)aStr.ToInt32(), MAP_PIXEL );
+						}
+					}
+				}
+			}
+		}
+	}
+}
+
+void ScChangeAcceptUI::FillInfo( String& rExtraData ) const
+{
+	rExtraData.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "AcceptChgDat:(" ) );
+
+	USHORT	nCount = pTheView->TabCount();
+
+	rExtraData += String::CreateFromInt32( nCount );
+	rExtraData += ';';
+	for ( USHORT i=0; i<nCount; i++ )
+	{
+		rExtraData += String::CreateFromInt32( pTheView->GetTab( i ) );
+		rExtraData += ';';
+	}
+	rExtraData += ')';
+}
+
+void ScChangeAcceptUI::Resize()
+{
+	aAcceptChgCtr.SetSizePixel( pDialog->GetOutputSizePixel() );
+}
+
+void ScChangeAcceptUI::Update()
+{
+	if ( bNeedsUpdate )
+	{
+		ClearView();
+		UpdateView();
+		bNoSelection=FALSE;
 	}
 }
 
-void __EXPORT ScAcceptChgDlg::Init()
+void __EXPORT ScChangeAcceptUI::Init()
 {
 	String	aAreaStr;
 	ScRange aRange;
@@ -267,7 +335,7 @@ void __EXPORT ScAcceptChgDlg::Init()
 
 	if(pChanges!=NULL)
 	{
-		pChanges->SetModifiedLink( LINK( this, ScAcceptChgDlg,ChgTrackModHdl));
+		pChanges->SetModifiedLink( LINK( this, ScChangeAcceptUI,ChgTrackModHdl));
 		aChangeViewSet.SetTheAuthorToShow(pChanges->GetUser());
 		pTPFilter->ClearAuthors();
 		StrCollection aUserColl=pChanges->GetUserCollection();
@@ -325,7 +393,7 @@ void __EXPORT ScAcceptChgDlg::Init()
 
 
 
-void ScAcceptChgDlg::ClearView()
+void ScChangeAcceptUI::ClearView()
 {
 	nAcceptCount=0;
 	nRejectCount=0;
@@ -336,7 +404,7 @@ void ScAcceptChgDlg::ClearView()
 	pTheView->SetUpdateMode(TRUE);
 }
 
-String* ScAcceptChgDlg::MakeTypeString(ScChangeActionType eType)
+String* ScChangeAcceptUI::MakeTypeString(ScChangeActionType eType)
 {
 	String* pStr;
 
@@ -367,7 +435,7 @@ String* ScAcceptChgDlg::MakeTypeString(S
 }
 
 
-BOOL ScAcceptChgDlg::IsValidAction(const ScChangeAction* pScChangeAction)
+BOOL ScChangeAcceptUI::IsValidAction(const ScChangeAction* pScChangeAction)
 {
 	if(pScChangeAction==NULL) return FALSE;
 
@@ -429,7 +497,7 @@ BOOL ScAcceptChgDlg::IsValidAction(const
 	return bFlag;
 }
 
-SvLBoxEntry* ScAcceptChgDlg::InsertChangeAction(const ScChangeAction* pScChangeAction,
+SvLBoxEntry* ScChangeAcceptUI::InsertChangeAction(const ScChangeAction* pScChangeAction,
                                                    ScChangeActionState /* eState */, SvLBoxEntry* pParent,
 												   BOOL bDelMaster,BOOL bDisabled,ULONG nPos)
 {
@@ -580,7 +648,7 @@ SvLBoxEntry* ScAcceptChgDlg::InsertChang
 	return pEntry;
 }
 
-SvLBoxEntry* ScAcceptChgDlg::InsertFilteredAction(const ScChangeAction* pScChangeAction,
+SvLBoxEntry* ScChangeAcceptUI::InsertFilteredAction(const ScChangeAction* pScChangeAction,
 												   ScChangeActionState eState,SvLBoxEntry* pParent,
 												   BOOL bDelMaster,BOOL bDisabled,ULONG nPos)
 {
@@ -712,7 +780,7 @@ SvLBoxEntry* ScAcceptChgDlg::InsertFilte
 	return pEntry;
 }
 
-SvLBoxEntry* ScAcceptChgDlg::InsertChangeActionContent(const ScChangeActionContent* pScChangeAction,
+SvLBoxEntry* ScChangeAcceptUI::InsertChangeActionContent(const ScChangeActionContent* pScChangeAction,
 														  SvLBoxEntry* pParent, ULONG nSpecial)
 {
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
@@ -840,20 +908,8 @@ SvLBoxEntry* ScAcceptChgDlg::InsertChang
 	return pEntry;
 }
 
-long ScAcceptChgDlg::PreNotify( NotifyEvent& rNEvt )
-{
-	if(rNEvt.GetType()==EVENT_GETFOCUS && bNeedsUpdate)
-	{
-		ClearView();
-		UpdateView();
-		bNoSelection=FALSE;
-	}
-
-	return SfxModelessDialog::PreNotify(rNEvt);
-}
-
 
-void ScAcceptChgDlg::UpdateView()
+void ScChangeAcceptUI::UpdateView()
 {
 	bNeedsUpdate=FALSE;
 	DateTime aDateTime;
@@ -862,7 +918,7 @@ void ScAcceptChgDlg::UpdateView()
 	const ScChangeAction* pScChangeAction=NULL;
 	bAcceptEnableFlag=TRUE;
 	bRejectEnableFlag=TRUE;
-	SetPointer(Pointer(POINTER_WAIT));
+	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
 	pTheView->SetUpdateMode(FALSE);
 	BOOL bFilterFlag=pTPFilter->IsDate()||pTPFilter->IsRange()||
 					 pTPFilter->IsAuthor()||pTPFilter->IsComment();
@@ -952,7 +1008,7 @@ void ScAcceptChgDlg::UpdateView()
 		pParent->EnableChildsOnDemand(TRUE);
 	}
 	pTheView->SetUpdateMode(TRUE);
-	SetPointer(Pointer(POINTER_ARROW));
+	pDialog->SetPointer( Pointer( POINTER_ARROW ) );
 	SvLBoxEntry* pEntry=pTheView->First();
 	if(pEntry!=NULL)
 	{
@@ -961,33 +1017,21 @@ void ScAcceptChgDlg::UpdateView()
 }
 
 //----------------------------------------------------------------------------
-BOOL ScAcceptChgDlg::Close()
-{
-	return SfxModelessDialog::Close();
-}
-
-void ScAcceptChgDlg::Resize()
-{
-	SfxModelessDialog::Resize();
-    Size aOutSize=GetOutputSizePixel();
-    aAcceptChgCtr.SetSizePixel(aOutSize);
-}
-
-IMPL_LINK( ScAcceptChgDlg, MinSizeHandle, SvxAcceptChgCtr*, pCtr )
+IMPL_LINK( ScChangeAcceptUI, MinSizeHandle, SvxAcceptChgCtr*, pCtr )
 {
 	if(pCtr==&aAcceptChgCtr)
 	{
-		if(!IsRollUp())
-			SetOutputSizePixel(MinSize);
+		if ( !pDialog->IsRollUp() )
+			pDialog->SetOutputSizePixel( MinSize );
 	}
 	return 0;
 }
 
-IMPL_LINK( ScAcceptChgDlg, RefHandle, SvxTPFilter*, EMPTYARG )
+IMPL_LINK( ScChangeAcceptUI, RefHandle, SvxTPFilter*, EMPTYARG )
 {
 	USHORT nId  =ScSimpleRefDlgWrapper::GetChildWindowId();
 
-	ScSimpleRefDlgWrapper::SetDefaultPosSize(GetPosPixel(),GetSizePixel(),TRUE);
+	ScSimpleRefDlgWrapper::SetDefaultPosSize( pDialog->GetPosPixel(), pDialog->GetSizePixel(), TRUE );
 
 	SC_MOD()->SetRefDialog( nId, TRUE );
 
@@ -999,19 +1043,19 @@ IMPL_LINK( ScAcceptChgDlg, RefHandle, Sv
 //		bSimpleRefDlgStarted=TRUE;
 		USHORT nAcceptId=ScAcceptChgDlgWrapper::GetChildWindowId();
 		pViewFrm->ShowChildWindow(nAcceptId,FALSE);
-		pWnd->SetCloseHdl(LINK( this, ScAcceptChgDlg,RefInfoHandle));
+		pWnd->SetCloseHdl(LINK( this, ScChangeAcceptUI,RefInfoHandle));
 		pWnd->SetRefString(pTPFilter->GetRange());
 		pWnd->SetAutoReOpen(FALSE);
 		Window* pWin=pWnd->GetWindow();
-		pWin->SetPosSizePixel(GetPosPixel(),GetSizePixel());
-		Hide();
-		pWin->SetText(GetText());
+		pWin->SetPosSizePixel( pDialog->GetPosPixel(), pDialog->GetSizePixel() );
+		pDialog->Hide();
+		pWin->SetText( pDialog->GetText() );
 		pWnd->StartRefInput();
 	}
 	return 0;
 }
 
-IMPL_LINK( ScAcceptChgDlg, RefInfoHandle, String*, pResult)
+IMPL_LINK( ScChangeAcceptUI, RefInfoHandle, String*, pResult)
 {
 	USHORT nId;
 
@@ -1031,9 +1075,9 @@ IMPL_LINK( ScAcceptChgDlg, RefInfoHandle
 		{
 			Window* pWin=pWnd->GetWindow();
 			Size aWinSize=pWin->GetSizePixel();
-			aWinSize.Width()=GetSizePixel().Width();
-			SetPosSizePixel(pWin->GetPosPixel(),aWinSize);
-			Invalidate();
+			aWinSize.Width() = pDialog->GetSizePixel().Width();
+			pDialog->SetPosSizePixel( pWin->GetPosPixel(), aWinSize );
+			pDialog->Invalidate();
 		}
 		nId = ScAcceptChgDlgWrapper::GetChildWindowId();
 		pViewFrm->ShowChildWindow( nId, TRUE );
@@ -1046,7 +1090,7 @@ IMPL_LINK( ScAcceptChgDlg, RefInfoHandle
 	return 0;
 }
 
-IMPL_LINK( ScAcceptChgDlg, FilterHandle, SvxTPFilter*, pRef )
+IMPL_LINK( ScChangeAcceptUI, FilterHandle, SvxTPFilter*, pRef )
 {
 	if(pRef!=NULL)
 	{
@@ -1059,9 +1103,9 @@ IMPL_LINK( ScAcceptChgDlg, FilterHandle,
 	return 0;
 }
 
-IMPL_LINK( ScAcceptChgDlg, RejectHandle, SvxTPView*, pRef )
+IMPL_LINK( ScChangeAcceptUI, RejectHandle, SvxTPView*, pRef )
 {
-	SetPointer(Pointer(POINTER_WAIT));
+	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
 
 	bIgnoreMsg=TRUE;
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
@@ -1093,14 +1137,14 @@ IMPL_LINK( ScAcceptChgDlg, RejectHandle,
 		ClearView();
 		UpdateView();
 	}
-	SetPointer(Pointer(POINTER_ARROW));
+	pDialog->SetPointer( Pointer( POINTER_ARROW ) );
 
 	bIgnoreMsg=FALSE;
 	return 0;
 }
-IMPL_LINK( ScAcceptChgDlg, AcceptHandle, SvxTPView*, pRef )
+IMPL_LINK( ScChangeAcceptUI, AcceptHandle, SvxTPView*, pRef )
 {
-	SetPointer(Pointer(POINTER_WAIT));
+	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
 
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
 	bIgnoreMsg=TRUE;
@@ -1142,7 +1186,7 @@ IMPL_LINK( ScAcceptChgDlg, AcceptHandle,
 	return 0;
 }
 
-void ScAcceptChgDlg::RejectFiltered()
+void ScChangeAcceptUI::RejectFiltered()
 {
 	if(pDoc==NULL) return;
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
@@ -1165,7 +1209,7 @@ void ScAcceptChgDlg::RejectFiltered()
 		pScChangeAction=pScChangeAction->GetPrev();
 	}
 }
-void ScAcceptChgDlg::AcceptFiltered()
+void ScChangeAcceptUI::AcceptFiltered()
 {
 	if(pDoc==NULL) return;
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
@@ -1189,9 +1233,9 @@ void ScAcceptChgDlg::AcceptFiltered()
 	}
 }
 
-IMPL_LINK( ScAcceptChgDlg, RejectAllHandle, SvxTPView*, EMPTYARG )
+IMPL_LINK( ScChangeAcceptUI, RejectAllHandle, SvxTPView*, EMPTYARG )
 {
-	SetPointer(Pointer(POINTER_WAIT));
+	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
 	bIgnoreMsg=TRUE;
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
 	if(pChanges!=NULL)
@@ -1214,16 +1258,16 @@ IMPL_LINK( ScAcceptChgDlg, RejectAllHand
 		ClearView();
 		UpdateView();
 	}
-	SetPointer(Pointer(POINTER_ARROW));
+	pDialog->SetPointer( Pointer( POINTER_ARROW ) );
 
 	bIgnoreMsg=FALSE;
 
 	return 0;
 }
 
-IMPL_LINK( ScAcceptChgDlg, AcceptAllHandle, SvxTPView*, EMPTYARG )
+IMPL_LINK( ScChangeAcceptUI, AcceptAllHandle, SvxTPView*, EMPTYARG )
 {
-	SetPointer(Pointer(POINTER_WAIT));
+	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
 
 	bIgnoreMsg=TRUE;
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
@@ -1245,12 +1289,12 @@ IMPL_LINK( ScAcceptChgDlg, AcceptAllHand
 		UpdateView();
 	}
 	bIgnoreMsg=FALSE;
-	SetPointer(Pointer(POINTER_ARROW));
+	pDialog->SetPointer( Pointer( POINTER_ARROW ) );
 
 	return 0;
 }
 
-IMPL_LINK( ScAcceptChgDlg, SelectHandle, SvxRedlinTable*, EMPTYARG )
+IMPL_LINK( ScChangeAcceptUI, SelectHandle, SvxRedlinTable*, EMPTYARG )
 {
 	if(!bNoSelection)
 	{
@@ -1260,7 +1304,7 @@ IMPL_LINK( ScAcceptChgDlg, SelectHandle,
 	return 0;
 }
 
-void ScAcceptChgDlg::GetDependents(  const ScChangeAction* pScChangeAction,
+void ScChangeAcceptUI::GetDependents(  const ScChangeAction* pScChangeAction,
 									ScChangeActionTable& aActionTable,
 									SvLBoxEntry* pEntry)
 {
@@ -1289,7 +1333,7 @@ void ScAcceptChgDlg::GetDependents(  con
 	}
 }
 
-BOOL ScAcceptChgDlg::InsertContentChilds(ScChangeActionTable* pActionTable,SvLBoxEntry* pParent)
+BOOL ScChangeAcceptUI::InsertContentChilds(ScChangeActionTable* pActionTable,SvLBoxEntry* pParent)
 {
 	BOOL bTheTestFlag=TRUE;
 	ScRedlinData *pEntryData=(ScRedlinData *)(pParent->GetUserData());
@@ -1363,7 +1407,7 @@ BOOL ScAcceptChgDlg::InsertContentChilds
 
 }
 
-BOOL ScAcceptChgDlg::InsertAcceptedORejected(SvLBoxEntry* pParent)
+BOOL ScChangeAcceptUI::InsertAcceptedORejected(SvLBoxEntry* pParent)
 {
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
 	BOOL bTheTestFlag=TRUE;
@@ -1395,7 +1439,7 @@ BOOL ScAcceptChgDlg::InsertAcceptedOReje
 	return bTheTestFlag;
 }
 
-BOOL ScAcceptChgDlg::InsertChilds(ScChangeActionTable* pActionTable,SvLBoxEntry* pParent)
+BOOL ScChangeAcceptUI::InsertChilds(ScChangeActionTable* pActionTable,SvLBoxEntry* pParent)
 {
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
 	BOOL bTheTestFlag=TRUE;
@@ -1425,7 +1469,7 @@ BOOL ScAcceptChgDlg::InsertChilds(ScChan
 	}
 	return bTheTestFlag;
 }
-BOOL ScAcceptChgDlg::InsertDeletedChilds(const ScChangeAction* pScChangeAction,
+BOOL ScChangeAcceptUI::InsertDeletedChilds(const ScChangeAction* pScChangeAction,
 										 ScChangeActionTable* pActionTable,SvLBoxEntry* pParent)
 {
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
@@ -1468,7 +1512,7 @@ BOOL ScAcceptChgDlg::InsertDeletedChilds
 	return bTheTestFlag;
 }
 
-BOOL ScAcceptChgDlg::Expand(ScChangeTrack* pChanges,const ScChangeAction* pScChangeAction,
+BOOL ScChangeAcceptUI::Expand(ScChangeTrack* pChanges,const ScChangeAction* pScChangeAction,
 							SvLBoxEntry* pEntry,BOOL bFilter)
 {
 	BOOL bTheTestFlag=TRUE;
@@ -1507,11 +1551,11 @@ BOOL ScAcceptChgDlg::Expand(ScChangeTrac
 	return bTheTestFlag;
 }
 
-IMPL_LINK( ScAcceptChgDlg, ExpandingHandle, SvxRedlinTable*, pTable )
+IMPL_LINK( ScChangeAcceptUI, ExpandingHandle, SvxRedlinTable*, pTable )
 {
 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
 	ScChangeAction* pScChangeAction=NULL;
-	SetPointer(Pointer(POINTER_WAIT));
+	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
 	if(pTable!=NULL && pChanges!=NULL)
 	{
 		ScChangeActionTable aActionTable;
@@ -1570,12 +1614,12 @@ IMPL_LINK( ScAcceptChgDlg, ExpandingHand
 
 		}
 	}
-	SetPointer(Pointer(POINTER_ARROW));
+	pDialog->SetPointer( Pointer( POINTER_ARROW ) );
 	return (ULONG) TRUE;
 }
 
 
-void ScAcceptChgDlg::AppendChanges(ScChangeTrack* pChanges,ULONG nStartAction,
+void ScChangeAcceptUI::AppendChanges(ScChangeTrack* pChanges,ULONG nStartAction,
                                    ULONG nEndAction, ULONG /* nPos */)
 {
 	if(pChanges!=NULL)
@@ -1585,7 +1629,7 @@ void ScAcceptChgDlg::AppendChanges(ScCha
 		const ScChangeAction* pScChangeAction=NULL;
 		bAcceptEnableFlag=TRUE;
 		bRejectEnableFlag=TRUE;
-		SetPointer(Pointer(POINTER_WAIT));
+		pDialog->SetPointer( Pointer( POINTER_WAIT ) );
 		pTheView->SetUpdateMode(FALSE);
 
 		ScChangeActionTable ActionTable;
@@ -1657,11 +1701,11 @@ void ScAcceptChgDlg::AppendChanges(ScCha
 		pTPView->EnableRejectAll(bTheFlag);
 
 		pTheView->SetUpdateMode(TRUE);
-		SetPointer(Pointer(POINTER_ARROW));
+		pDialog->SetPointer( Pointer( POINTER_ARROW ) );
 	}
 }
 
-void ScAcceptChgDlg::RemoveEntrys(ULONG nStartAction,ULONG nEndAction)
+void ScChangeAcceptUI::RemoveEntrys(ULONG nStartAction,ULONG nEndAction)
 {
 
 	pTheView->SetUpdateMode(FALSE);
@@ -1713,7 +1757,7 @@ void ScAcceptChgDlg::RemoveEntrys(ULONG 
 
 }
 
-void ScAcceptChgDlg::UpdateEntrys(ScChangeTrack* pChgTrack, ULONG nStartAction,ULONG nEndAction)
+void ScChangeAcceptUI::UpdateEntrys(ScChangeTrack* pChgTrack, ULONG nStartAction,ULONG nEndAction)
 {
 	pTheView->SetUpdateMode(FALSE);
 
@@ -1775,9 +1819,9 @@ void ScAcceptChgDlg::UpdateEntrys(ScChan
 
 }
 
-IMPL_LINK( ScAcceptChgDlg, ChgTrackModHdl, ScChangeTrack*, pChgTrack)
+IMPL_LINK( ScChangeAcceptUI, ChgTrackModHdl, ScChangeTrack*, pChgTrack)
 {
-//	if(bScAcceptChgDlgIsDead) return 0;
+//	if(bScChangeAcceptUIIsDead) return 0;
 
 	ScChangeTrackMsgQueue& aMsgQueue= pChgTrack->GetMsgQueue();
 
@@ -1812,7 +1856,7 @@ IMPL_LINK( ScAcceptChgDlg, ChgTrackModHd
 
 	return 0;
 }
-IMPL_LINK( ScAcceptChgDlg, ReOpenTimerHdl, Timer*, EMPTYARG )
+IMPL_LINK( ScChangeAcceptUI, ReOpenTimerHdl, Timer*, EMPTYARG )
 {
 	ScSimpleRefDlgWrapper::SetAutoReOpen(TRUE);
 	aAcceptChgCtr.ShowFilterPage();
@@ -1821,7 +1865,7 @@ IMPL_LINK( ScAcceptChgDlg, ReOpenTimerHd
 	return 0;
 }
 
-IMPL_LINK( ScAcceptChgDlg, UpdateSelectionHdl, Timer*, EMPTYARG )
+IMPL_LINK( ScChangeAcceptUI, UpdateSelectionHdl, Timer*, EMPTYARG )
 {
     ScTabView* pTabView = pViewData->GetView();
 
@@ -1844,7 +1888,7 @@ IMPL_LINK( ScAcceptChgDlg, UpdateSelecti
                     (!pEntryData->bDisabled || pScChangeAction->IsVisible()) )
             {
                 const ScBigRange& rBigRange = pScChangeAction->GetBigRange();
-                if( rBigRange.IsValid( pDoc ) && IsActive() )
+                if( rBigRange.IsValid( pDoc ) && pDialog->IsActive() )
                 {
                     BOOL bSetCursor = !pTheView->NextSelected( pEntry );
                     pTabView->MarkRange( rBigRange.MakeRange(), bSetCursor, bContMark );
@@ -1870,7 +1914,7 @@ IMPL_LINK( ScAcceptChgDlg, UpdateSelecti
 	return 0;
 }
 
-IMPL_LINK( ScAcceptChgDlg, CommandHdl, Control*, EMPTYARG )
+IMPL_LINK( ScChangeAcceptUI, CommandHdl, Control*, EMPTYARG )
 {
 
 	const CommandEvent aCEvt(pTheView->GetCommandEvent());
@@ -1920,7 +1964,7 @@ IMPL_LINK( ScAcceptChgDlg, CommandHdl, C
 			}
 		}
 
-		USHORT nCommand=aPopup.Execute( this, GetPointerPosPixel() );
+		USHORT nCommand=aPopup.Execute( pDialog, pDialog->GetPointerPosPixel() );
 
 
 		if(nCommand)
@@ -1935,7 +1979,7 @@ IMPL_LINK( ScAcceptChgDlg, CommandHdl, C
 						ScChangeAction* pScChangeAction=
 								(ScChangeAction*) pEntryData->pData;
 
-						pViewData->GetDocShell()->ExecuteChangeCommentDialog( pScChangeAction, this,FALSE);
+						pViewData->GetDocShell()->ExecuteChangeCommentDialog( pScChangeAction, pDialog, FALSE);
 					}
 				}
 			}
@@ -1959,70 +2003,9 @@ IMPL_LINK( ScAcceptChgDlg, CommandHdl, C
 	return 0;
 }
 
-void ScAcceptChgDlg::Initialize(SfxChildWinInfo *pInfo)
-{
-	String aStr;
-	if(pInfo!=NULL)
-	{
-		if ( pInfo->aExtraString.Len() )
-		{
-			xub_StrLen nPos = pInfo->aExtraString.Search(
-				String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("AcceptChgDat:")));
-
-			// Versuche, den Alignment-String "ALIGN:(...)" einzulesen; wenn
-			// er nicht vorhanden ist, liegt eine "altere Version vor
-			if ( nPos != STRING_NOTFOUND )
-			{
-				xub_StrLen n1 = pInfo->aExtraString.Search('(', nPos);
-				if ( n1 != STRING_NOTFOUND )
-				{
-					xub_StrLen n2 = pInfo->aExtraString.Search(')', n1);
-					if ( n2 != STRING_NOTFOUND )
-					{
-						// Alignment-String herausschneiden
-						aStr = pInfo->aExtraString.Copy(nPos, n2 - nPos + 1);
-						pInfo->aExtraString.Erase(nPos, n2 - nPos + 1);
-						aStr.Erase(0, n1-nPos+1);
-					}
-				}
-			}
-		}
-	}
-	SfxModelessDialog::Initialize(pInfo);
-
-	if ( aStr.Len())
-	{
-		USHORT nCount=(USHORT)aStr.ToInt32();
-
-		for(USHORT i=0;i<nCount;i++)
-		{
-			xub_StrLen n1 = aStr.Search(';');
-			aStr.Erase(0, n1+1);
-			pTheView->SetTab(i,(USHORT)aStr.ToInt32(),MAP_PIXEL);
-		}
-	}
-}
-
 //-------------------------------------------------------------------------
 
-void ScAcceptChgDlg::FillInfo(SfxChildWinInfo& rInfo) const
-{
-	SfxModelessDialog::FillInfo(rInfo);
-	rInfo.aExtraString.AppendAscii(RTL_CONSTASCII_STRINGPARAM( "AcceptChgDat:(" ));
-
-	USHORT	nCount=pTheView->TabCount();
-
-	rInfo.aExtraString += String::CreateFromInt32(nCount);
-	rInfo.aExtraString += ';';
-	for(USHORT i=0;i<nCount;i++)
-	{
-		rInfo.aExtraString += String::CreateFromInt32(pTheView->GetTab(i));
-		rInfo.aExtraString += ';';
-	}
-	rInfo.aExtraString += ')';
-}
-
-void ScAcceptChgDlg::InitFilter()
+void ScChangeAcceptUI::InitFilter()
 {
 	if(pTPFilter->IsDate()||pTPFilter->IsRange()||
 		pTPFilter->IsAuthor()||pTPFilter->IsComment())
@@ -2047,11 +2030,11 @@ void ScAcceptChgDlg::InitFilter()
 	}
 }
 
-void ScAcceptChgDlg::SetMyStaticData()
+void ScChangeAcceptUI::SetMyStaticData()
 {
 }
 
-IMPL_LINK( ScAcceptChgDlg, FilterModified, SvxTPFilter*, EMPTYARG )
+IMPL_LINK( ScChangeAcceptUI, FilterModified, SvxTPFilter*, EMPTYARG )
 {
 	return 0;
 }
@@ -2059,7 +2042,7 @@ IMPL_LINK( ScAcceptChgDlg, FilterModifie
 #define CALC_DATE		3
 #define CALC_POS		1
 
-IMPL_LINK( ScAcceptChgDlg, ColCompareHdl, SvSortData*, pSortData )
+IMPL_LINK( ScChangeAcceptUI, ColCompareHdl, SvSortData*, pSortData )
 {
 	StringCompare eCompare=COMPARE_EQUAL;
 	SCCOL nSortCol= static_cast<SCCOL>(pTheView->GetSortedCol());
@@ -2147,3 +2130,80 @@ IMPL_LINK( ScAcceptChgDlg, ColCompareHdl
 	return eCompare;
 }
 
+
+//============================================================================
+//	class ScAcceptChgDlg
+//----------------------------------------------------------------------------
+ScAcceptChgDlg::ScAcceptChgDlg( SfxBindings* pB, SfxChildWindow* pCW, Window* pParent,
+								ScViewData* ptrViewData )
+
+	:	SfxModelessDialog( pB, pCW, pParent, ScResId( RID_SCDLG_CHANGES ) ),
+		pImpl( new ScChangeAcceptUI( this, ptrViewData ) )
+{
+	FreeResource();
+}
+
+ScAcceptChgDlg::~ScAcceptChgDlg()
+{
+	delete pImpl, pImpl = NULL;
+}
+
+void ScAcceptChgDlg::ReInit( ScViewData* ptrViewData )
+{
+	if ( pImpl )
+		pImpl->ReInit( ptrViewData );
+}
+
+BOOL ScAcceptChgDlg::Close()
+{
+	return SfxModelessDialog::Close();
+}
+
+void ScAcceptChgDlg::Resize()
+{
+	SfxModelessDialog::Resize();
+	pImpl->Resize();
+}
+
+long ScAcceptChgDlg::PreNotify( NotifyEvent& rNEvt )
+{
+	if ( rNEvt.GetType() == EVENT_GETFOCUS )
+		pImpl->Update();
+
+	return SfxModelessDialog::PreNotify(rNEvt);
+}
+
+void ScAcceptChgDlg::Initialize( SfxChildWinInfo *pInfo )
+{
+	if ( pInfo != NULL )
+		pImpl->Initialize( pInfo->aExtraString );
+
+	SfxModelessDialog::Initialize( pInfo );
+}
+
+void ScAcceptChgDlg::FillInfo( SfxChildWinInfo& rInfo ) const
+{
+	SfxModelessDialog::FillInfo( rInfo );
+	pImpl->FillInfo( rInfo.aExtraString );
+}
+
+//============================================================================
+//	class ScAcceptChgModalDlg
+//----------------------------------------------------------------------------
+ScAcceptChgModalDlg::ScAcceptChgModalDlg( Window *pParent, ScViewData* ptrViewData )
+	:	SfxModalDialog( pParent, ScResId( RID_SCDLG_CHANGES_MODAL ) ),
+		pImpl( new ScChangeAcceptUI( this, ptrViewData ) )
+{
+	FreeResource();
+}
+
+ScAcceptChgModalDlg::~ScAcceptChgModalDlg()
+{
+	delete pImpl, pImpl = NULL;
+}
+
+void ScAcceptChgModalDlg::Resize()
+{
+	SfxModalDialog::Resize();
+	pImpl->Resize();
+}
diff -pur sc.orig/source/ui/miscdlgs/acredlin.src sc/source/ui/miscdlgs/acredlin.src
--- sc.orig/source/ui/miscdlgs/acredlin.src	2005-09-23 17:02:36.000000000 +0200
+++ sc/source/ui/miscdlgs/acredlin.src	2006-12-04 16:31:59.000000000 +0100
@@ -34,136 +34,145 @@
  ************************************************************************/
 
 #include "acredlin.hrc"
+
+#define MODAL_OR_MODELESS_CHANGES_DIALOG \
+	OutputSize = TRUE ; \
+	HelpId = FID_CHG_ACCEPT ; \
+	Hide = TRUE ; \
+	SVLook = TRUE ; \
+	Size = MAP_APPFONT ( 282 , 142 ) ; \
+	Moveable = TRUE ; \
+	Sizeable = TRUE ; \
+	Closeable = TRUE ; \
+	Control CTR_REDLINING \
+	{ \
+		HelpId = HID_SC_REDLIN_CTR ; \
+		Pos = MAP_APPFONT ( 2 , 2 ) ; \
+		Size = MAP_APPFONT ( 270 , 105 ) ; \
+	}; \
+	CancelButton BTN_CANCEL \
+	{ \
+		Pos = MAP_APPFONT ( 271 , 105 ) ; \
+		Size = MAP_APPFONT ( 1 , 1 ) ; \
+		TabStop = FALSE ; \
+	}; \
+	FixedText FT_ASSIGN \
+	{ \
+		Hide = TRUE ; \
+		Border = TRUE ; \
+		Pos = MAP_APPFONT ( 12 , 105 ) ; \
+		Size = MAP_APPFONT ( 128 , 12 ) ; \
+		TabStop = TRUE ; \
+		Text [ en-US ] = "Range" ; \
+	}; \
+	Edit ED_ASSIGN \
+	{ \
+		Hide = TRUE ; \
+		Border = TRUE ; \
+		Pos = MAP_APPFONT ( 12 , 119 ) ; \
+		Size = MAP_APPFONT ( 128 , 12 ) ; \
+		TabStop = TRUE ; \
+	}; \
+	ImageButton RB_ASSIGN \
+	{ \
+		Hide = TRUE ; \
+		Pos = MAP_APPFONT ( 142 , 118 ) ; \
+		Size = MAP_APPFONT ( 13 , 15 ) ; \
+		TabStop = FALSE ; \
+		QuickHelpText [ en-US ] = "Minimize/Maximize" ; \
+	}; \
+	String STR_INSERT_COLS \
+	{ \
+		Text [ en-US ] = "Column inserted" ; \
+	}; \
+	String STR_INSERT_ROWS \
+	{ \
+		Text [ en-US ] = "Row inserted " ; \
+	}; \
+	String STR_INSERT_TABS \
+	{ \
+		Text [ en-US ] = "Sheet inserted " ; \
+	}; \
+	String STR_DELETE_COLS \
+	{ \
+		Text [ en-US ] = "Column deleted" ; \
+	}; \
+	String STR_DELETE_ROWS \
+	{ \
+		Text [ en-US ] = "Row deleted" ; \
+	}; \
+	String STR_DELETE_TABS \
+	{ \
+		Text [ en-US ] = "Sheet deleted" ; \
+	}; \
+	String STR_MOVE \
+	{ \
+		Text [ en-US ] = "Range moved" ; \
+	}; \
+	String STR_CONTENT \
+	{ \
+		Text [ en-US ] = "Changed contents" ; \
+	}; \
+	String STR_CONTENT_WITH_CHILD \
+	{ \
+		Text [ en-US ] = "Changed contents" ; \
+	}; \
+	String STR_CHILD_CONTENT \
+	{ \
+		Text [ en-US ] = "Changed to " ; \
+	}; \
+	String STR_CHILD_ORGCONTENT \
+	{ \
+		Text [ en-US ] = "Original" ; \
+	}; \
+	String STR_REJECT \
+	{ \
+		Text [ en-US ] = "Changes rejected" ; \
+	}; \
+	String STR_ACCEPTED \
+	{ \
+		Text [ en-US ] = "Accepted" ; \
+	}; \
+	String STR_REJECTED \
+	{ \
+		Text [ en-US ] = "Rejected" ; \
+	}; \
+	String STR_NO_ENTRY \
+	{ \
+		Text [ en-US ] = "No Entry" ; \
+	}; \
+	String STR_EMPTY \
+	{ \
+		Text [ en-US ] = "<empty>" ; \
+	}; \
+	Bitmap BMP_STR_CLOSE \
+	{ \
+		File = "dir-clos.bmp" ; \
+	}; \
+	Bitmap BMP_STR_OPEN \
+	{ \
+		File = "dir-open.bmp" ; \
+	}; \
+	Bitmap BMP_STR_END \
+	{ \
+		File = "basobj2.bmp" ; \
+	}; \
+	Bitmap BMP_STR_ERROR \
+	{ \
+		File = "basbrk.bmp" ; \
+	}; \
+	Text [ en-US ] = "Accept or Reject Changes" ; \
+
 ModelessDialog RID_SCDLG_CHANGES
 {
-	OutputSize = TRUE ;
-	HelpId = FID_CHG_ACCEPT ;
-	Hide = TRUE ;
-	SVLook = TRUE ;
-	Size = MAP_APPFONT ( 282 , 142 ) ;
-	Moveable = TRUE ;
-	Sizeable = TRUE ;
-	Closeable = TRUE ;
-	 // Dieser Dialog hat einen Cancel-Button !
-	Control CTR_REDLINING
-	{
-		HelpId = HID_SC_REDLIN_CTR ;
-		Pos = MAP_APPFONT ( 2 , 2 ) ;
-		Size = MAP_APPFONT ( 270 , 105 ) ;
-	};
-	CancelButton BTN_CANCEL
-	{
-		Pos = MAP_APPFONT ( 271 , 105 ) ;
-		Size = MAP_APPFONT ( 1 , 1 ) ;
-		TabStop = FALSE ;
-	};
-	FixedText FT_ASSIGN
-	{
-		Hide = TRUE ;
-		Border = TRUE ;
-		Pos = MAP_APPFONT ( 12 , 105 ) ;
-		Size = MAP_APPFONT ( 128 , 12 ) ;
-		TabStop = TRUE ;
-		Text [ en-US ] = "Range" ;
-	};
-	Edit ED_ASSIGN
-	{
-		Hide = TRUE ;
-		Border = TRUE ;
-		Pos = MAP_APPFONT ( 12 , 119 ) ;
-		Size = MAP_APPFONT ( 128 , 12 ) ;
-		TabStop = TRUE ;
-	};
-	ImageButton RB_ASSIGN
-	{
-		Hide = TRUE ;
-		Pos = MAP_APPFONT ( 142 , 118 ) ;
-		Size = MAP_APPFONT ( 13 , 15 ) ;
-		TabStop = FALSE ;
-		QuickHelpText [ en-US ] = "Minimize/Maximize" ;
-	};
-	String STR_INSERT_COLS
-	{
-		Text [ en-US ] = "Column inserted" ;
-	};
-	String STR_INSERT_ROWS
-	{
-		Text [ en-US ] = "Row inserted " ;
-	};
-	String STR_INSERT_TABS
-	{
-		Text [ en-US ] = "Sheet inserted " ;
-	};
-	String STR_DELETE_COLS
-	{
-		Text [ en-US ] = "Column deleted" ;
-	};
-	String STR_DELETE_ROWS
-	{
-		Text [ en-US ] = "Row deleted" ;
-	};
-	String STR_DELETE_TABS
-	{
-		Text [ en-US ] = "Sheet deleted" ;
-	};
-	String STR_MOVE
-	{
-		Text [ en-US ] = "Range moved" ;
-	};
-	String STR_CONTENT
-	{
-		Text [ en-US ] = "Changed contents" ;
-	};
-	String STR_CONTENT_WITH_CHILD
-	{
-		Text [ en-US ] = "Changed contents" ;
-	};
-	String STR_CHILD_CONTENT
-	{
-		Text [ en-US ] = "Changed to " ;
-	};
-	String STR_CHILD_ORGCONTENT
-	{
-		Text [ en-US ] = "Original" ;
-	};
-	String STR_REJECT
-	{
-		Text [ en-US ] = "Changes rejected" ;
-	};
-	String STR_ACCEPTED
-	{
-		Text [ en-US ] = "Accepted" ;
-	};
-	String STR_REJECTED
-	{
-		Text [ en-US ] = "Rejected" ;
-	};
-	String STR_NO_ENTRY
-	{
-		Text [ en-US ] = "No Entry" ;
-	};
-	String STR_EMPTY
-	{
-		Text [ en-US ] = "<empty>" ;
-	};
-	Bitmap BMP_STR_CLOSE
-	{
-		File = "dir-clos.bmp" ;
-	};
-	Bitmap BMP_STR_OPEN
-	{
-		File = "dir-open.bmp" ;
-	};
-	Bitmap BMP_STR_END
-	{
-		File = "basobj2.bmp" ;
-	};
-	Bitmap BMP_STR_ERROR
-	{
-		File = "basbrk.bmp" ;
-	};
-	Text [ en-US ] = "Accept or Reject Changes" ;
+	MODAL_OR_MODELESS_CHANGES_DIALOG
 };
+
+ModalDialog RID_SCDLG_CHANGES_MODAL
+{
+	MODAL_OR_MODELESS_CHANGES_DIALOG
+};
+
 Menu RID_POPUP_CHANGES
 {
 	ItemList =
