When an app refuses focus, the focus ends up on the desktop. When a keypress is received by the desktop, this is interpreted as a request to look up contacts beginning with that letter.
I would be a whole lot happier if applications did not attempt to mess with focus and left this to the window manager. That's what we have a window manager for. The ICCCM actually forbids you to do this unilaterally (4.2.7); you're also not supposed to be using RevertToPointerRoot or CurrentTime (see the footnotes of 4.2.7).
I'm not sure why you think I didn't explain the problem, since I went into some detail here. To recap:A window can have a field called WM_HINTS. One of the bits in this field is called InputHint. If this bit is not set, the window is saying that it never wants input focus. If the window manager was to give such a window focus, the window manager would be broken. libsdl contains a bug which clears this bit if you set an icon on your window. Therefore, if you set an icon on an SDL window, the window manager will never give that window focus. This is correct behaviour on the part of the window manager. On the other hand, if you don't set an icon on the window, it doesn't matter, because Maemo is clever and will get the icon from elsewhere. Therefore, not setting an icon is a perfect workaround until the libsdl bug is fixed.
I don't know whether your program is suffering from a similar bug, but I can check if you like. Or you can check, if you want, by running xprop against your toplevel window.