--- svx/source/msfilter/msocximex.cxx        2007-01-22 11:40:38.000000000 +0000
+++ svx/source/msfilter/msocximex.cxx   2007-01-22 16:01:24.000000000 +0000
@@ -704,9 +704,17 @@ class ContainerRecReader
             if( nContentFlags & 0x00001000 )
                 *pS >> nCntrlIdLen;

+            // length of control Row source name
+            sal_uInt32 nCtrlRowSrcLen = 0;
+            if( nContentFlags & 0x00002000 )
+            {
+                ReadAlign( pS, pS->Tell() - nStartPos, 4 );
+                *pS >> nCtrlRowSrcLen;
+            }
+
             // length of control source name
             sal_uInt32 nCtrlSrcLen = 0;
-            if( nContentFlags & 0x00002000 )
+            if( nContentFlags & 0x00004000 )
             {
                 ReadAlign( pS, pS->Tell() - nStartPos, 4 );
                 *pS >> nCtrlSrcLen;
@@ -750,6 +758,13 @@ class ContainerRecReader
                 ReadAlign( pS, pS->Tell() - nStartPos, 4 );
                 pS->SeekRel( nCntrlIdSize );
             }
+            // control row source name
+            sal_uInt32 nCtrlRowSrcBufSize = lclGetBufferSize( nCtrlRowSrcLen );
+            if( nCtrlRowSrcBufSize > 0 )
+            {
+                ReadAlign( pS, pS->Tell() - nStartPos, 4 );
+                pS->SeekRel( nCtrlRowSrcBufSize );
+            }
             // control source name
             sal_uInt32 nCtrlSrcBufSize = lclGetBufferSize( nCtrlSrcLen );
             if( nCtrlSrcBufSize > 0 )