Index: sc/source/core/data/document.cxx
===================================================================
RCS file: /cvs/sc/sc/source/core/data/document.cxx,v
retrieving revision 1.79
diff -u -p -r1.79 document.cxx
--- sc/source/core/data/document.cxx	17 Jul 2007 13:32:52 -0000	1.79
+++ sc/source/core/data/document.cxx	29 Oct 2007 20:26:42 -0000
@@ -763,6 +810,10 @@ void ScDocument::DeleteRow( SCCOL nStart
 			ScAddress( nStartCol, nStartRow, nStartTab ),
 			ScAddress( nEndCol, MAXROW, nEndTab ) ) );
 
+	for ( i = nStartTab; i <= nEndTab; i++)
+		if (pDrawLayer)
+			pDrawLayer->DeleteObjectsInArea( i, nStartCol, nStartRow, nEndCol, nStartRow+nSize);
+
 	if ( ValidRow(nStartRow+nSize) )
 	{
 		UpdateReference( URM_INSDEL, nStartCol, nStartRow+nSize, nStartTab,
@@ -914,6 +965,10 @@ void ScDocument::DeleteCol(SCROW nStartR
 			ScAddress( nStartCol, nStartRow, nStartTab ),
 			ScAddress( MAXCOL, nEndRow, nEndTab ) ) );
 
+	for ( i = nStartTab; i <= nEndTab; i++)
+		if (pDrawLayer)
+			pDrawLayer->DeleteObjectsInArea( i, nStartCol, nStartRow, nStartCol+nSize, nEndRow );
+
     if ( ValidCol(sal::static_int_cast<SCCOL>(nStartCol+nSize)) )
 	{
         UpdateReference( URM_INSDEL, sal::static_int_cast<SCCOL>(nStartCol+nSize), nStartRow, nStartTab,
Index: sc/source/core/data/table2.cxx
===================================================================
RCS file: /cvs/sc/sc/source/core/data/table2.cxx,v
retrieving revision 1.37
diff -u -p -r1.37 table2.cxx
--- sc/source/core/data/table2.cxx	27 Feb 2007 12:09:28 -0000	1.37
+++ sc/source/core/data/table2.cxx	18 Oct 2007 20:46:19 -0000
@@ -1967,15 +1967,13 @@ BOOL ScTable::SetRowHeightRange( SCROW n
 		{
 			if (nEndRow-nStartRow < 20)
             {
-                // Whether new pixel size will differ from old pixel size in any row.
-                ScCompressedArrayIterator< SCROW, USHORT> aIter( *pRowHeight,
-                        nStartRow, nEndRow);
-                do
+                for (SCROW nRow = nStartRow; nRow <= nEndRow; ++nRow)
                 {
-                    if (*aIter != nNewHeight)
-                        bChanged = (nNewPix != (long) (*aIter * nPPTY));
-                } while (!bChanged && aIter.NextRange());
-                pRowHeight->SetValue( nStartRow, nEndRow, nNewHeight);
+                    if (!bChanged)
+                        if (pRowHeight->GetValue( nRow ))
+                            bChanged = (nNewPix != (long) (pRowHeight->GetValue( nRow ) * nPPTY));
+                    SetRowHeight( nRow, nNewHeight );
+                }
             }
 			else
 			{
