--- sc/source/ui/app/inputhdl.cxx.old	2006-10-05 12:30:26.838388000 +0200
+++ sc/source/ui/app/inputhdl.cxx	2006-10-05 12:41:54.068388000 +0200
@@ -2038,13 +2038,8 @@
 		const ScValidationData*	pData = pDoc->GetValidationEntry( nValidation );
 		if (pData && pData->HasErrMsg())
 		{
-			const ScPatternAttr* pPattern = pLastPattern;
-			if (!pPattern)
-			{
-				DBG_ERROR("kein Pattern !??!");
-				pPattern = pDoc->GetPattern( aCursorPos.Col(), aCursorPos.Row(),
-											  aCursorPos.Tab() );
-			}
+            // #i67990# don't use pLastPattern in EnterHandler
+            const ScPatternAttr* pPattern = pDoc->GetPattern( aCursorPos.Col(), aCursorPos.Row(), aCursorPos.Tab() );
 			BOOL bOk = pData->IsDataValid( aString, *pPattern, aCursorPos );
 
 			if (!bOk)
@@ -2085,12 +2080,14 @@
 		//	#i3820# If the spell checker flags numerical input as error,
 		//	it still has to be treated as number, not EditEngine object.
 
-		if ( pLastPattern && pActiveViewSh )
+        if ( pActiveViewSh )
 		{
 			ScDocument* pDoc = pActiveViewSh->GetViewData()->GetDocument();
+            // #i67990# don't use pLastPattern in EnterHandler
+            const ScPatternAttr* pPattern = pDoc->GetPattern( aCursorPos.Col(), aCursorPos.Row(), aCursorPos.Tab() );
 			SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
 			// without conditional format, as in ScColumn::SetString
-			sal_uInt32 nFormat = pLastPattern->GetNumberFormat( pFormatter );
+            sal_uInt32 nFormat = pPattern->GetNumberFormat( pFormatter );
 			double nVal;
 			if ( pFormatter->IsNumberFormat( aString, nFormat, nVal ) )
 			{
