I am using console implementation class CEikConsoleScreen. The output through CConsoleBase::Printf() works flawlessly. However I could not get it to input keypad clicks. Any help appreciated.

SDK: S60 3.0 Final release
Phone: E60


Initialization:

Code:
void CConsoleControl::ConstructL(const TRect & aClientRect)
{
	iConsole = new (ELeave) CEikConsoleScreen;
	_LIT(KEikSec, "EikConsole");
	iConsole->ConstructL(KEikSec, aClientRect.iTl, aClientRect.Size(), 0, EEikConsWinInPixels);
		
}
void CConsoleControl::ActivateL()
{
	CCoeControl::ActivateL();
	iConsole->SetKeepCursorInSight(EFalse);
	iConsole->DrawCursor();
	iConsole->ConsoleControl()->SetFocus(ETrue, EDrawNow);
}
Here is how I read input from the console

Code:
void CActiveConsole::RequestCharacter()
{
    // A request is issued to the CConsoleBase to accept a
    // character from the keyboard.
    iConsole->Read(iStatus); 
    
    ASSERT(!IsActive());
        
    SetActive();
}
Strangely, it does to set iStatus to KPendingRequest value which leads to all sorts of trouble. What is the catch here? Someone with experience please advise!