diff -r 923ff622b8b9 -r 4633027730f5 src/hbplugins/inputmethods/touchinput/hbinputpredictionqwertyhandler.cpp --- a/src/hbplugins/inputmethods/touchinput/hbinputpredictionqwertyhandler.cpp Tue Jul 06 14:36:53 2010 +0300 +++ b/src/hbplugins/inputmethods/touchinput/hbinputpredictionqwertyhandler.cpp Wed Aug 18 10:05:37 2010 +0300 @@ -133,7 +133,6 @@ case HbInputButton::ButtonKeyCodeSymbol: { // Ctrl/Chr case HbInputButton::ButtonKeyCodeAlphabet: mInputMethod->switchSpecialCharacterTable(); - q->HbInputPredictionHandler::actionHandler(HbInputModeHandler::HbInputModeActionSetKeypad); } break; case HbInputButton::ButtonKeyCodeSettings: @@ -328,7 +327,7 @@ mCanContinuePrediction = true; int tailLength = mInputMethod->focusObject()->preEditString().length() - mEngine->inputLength(); - if(tailLength <= 0 && true == mExactPopupLaunched) { + if( true == mExactPopupLaunched ) { mEngine->deleteKeyPress(); mEngine->updateCandidates(mBestGuessLocation); } @@ -472,8 +471,7 @@ void HbInputPredictionQwertyHandlerPrivate::showExactWordPopupIfNeeded() { Q_Q(HbInputPredictionHandler); - if (mShowTooltip && mCandidates->count() > mPrimaryCandidateIndex && mCandidates->at(0).mid(0, mEngine->inputLength()) \ - != mCandidates->at(mPrimaryCandidateIndex).mid(0, mEngine->inputLength())) { + if (mShowTooltip && mCandidates && mCandidates->count() > mPrimaryCandidateIndex && mPrimaryCandidateIndex != mSecondaryCandidateIndex) { q->processExactWord(mCandidates->at(mSecondaryCandidateIndex)); } else { QString empty;