--- sc/source/ui/app/inputhdl.cxx	2005-08-31 21:44:52.855035064 +0530
+++ sc/source/ui/app/inputhdl.cxx	2005-08-31 08:17:51.000000000 +0530
@@ -1617,7 +1617,8 @@ BOOL ScInputHandler::StartTable( sal_Uni
 				if ( bAutoComplete )
 					GetColData();
 
-				if ( aStr.GetChar(0) == '=' && !cTyped && !bCreatingFuncView )
+				if ( (aStr.GetChar(0) == '=' || aStr.GetChar(0) == '+' || aStr.GetChar(0) == '-') 
+						&& !cTyped && !bCreatingFuncView )
 					InitRangeFinder(aStr);				// Formel wird editiert -> RangeFinder
 
 				bNewTable = TRUE;		//	-> PostEditView-Aufruf
@@ -1811,7 +1812,8 @@ void ScInputHandler::UpdateFormulaMode()
 {
 	SfxApplication* pSfxApp = SFX_APP();
 
-	if ( pEngine->GetParagraphCount()==1 && pEngine->GetText((USHORT)0).GetChar(0) == '='
+	if ( pEngine->GetParagraphCount()==1 && (pEngine->GetText((USHORT)0).GetChar(0) == '='
+		|| pEngine->GetText((USHORT)0).GetChar(0) == '+' || pEngine->GetText((USHORT)0).GetChar(0) == '-')
 		&& !bProtected )
 	{
 		if (!bFormulaMode)
--- sc/source/ui/view/viewfunc.cxx	2005-07-17 21:30:12.000000000 +0530
+++ sc/source/ui/view/viewfunc.cxx	2005-09-01 19:36:08.000000000 +0530
@@ -450,8 +450,13 @@ void ScViewFunc::EnterData( SCCOL nCol, 
 		}
 
 		BOOL bNumFmtChanged = FALSE;
+		double fVal;
+		sal_uInt32 nIndex = 0;
+
 		// einzelnes '=' ist String (wird fuer Spezialfilter so gebraucht)
-		if ( rString.GetChar(0) == '=' && rString.Len() > 1 )
+		if ( rString.Len() > 1 && 
+		   ( rString.GetChar(0) == '=' || rString.GetChar(0) == '+' || rString.GetChar(0) == '-' ) &&
+		   (pDoc->GetNumberFormat(nCol, nRow, nTab, nIndex), !rFormatter.IsNumberFormat(rString, nIndex, fVal)))
 		{	// Formel, compile mit AutoCorrection
 			for (i=0; i<nTabCount; i++)
 				if (rMark.GetTableSelect(i))
