Я к тому что если Ваше меню зарегестрированно только как объектное, то (impsel != null) лишена смысла т.к. такой ситуации не будет - там точно есть объекты и только те которые нужны.
Я тоже так думал, пока не столкнулся с тем, что предварительный выбор слетает. Именно после этого и добавил такую проверку, дабы "вручную" восстанавливать предварительный набор. Скорее всего велосипед кроется в каком-то косяке, допущенном мною (пока не нашёл).
Ещё поковыряюсь в коде, если так и не найду причины такого поведения, то выложу исходники здесь, дабы каждый желающий смог воочию увидеть сей "ахтунг". Может свежим глазом кто и заметит причину. Пока не вижу. Вроде всё сделано по аналогии с обозначенным выше Hello World...
кстати проверять "!=" с вариантом ветки else меня до сих пор коробит "=" и менять ветки then else местами
Я не понял этой фразы. Предполагаю, что не хватает знаков пунктуации, т.к. читается "казнить нельзя помиловать". Или меня уже можно выносить строиться...

з.ы. В добавление к сказанному А.Ривилиса - Андрей давно в отпуск ходили? 
Я уже не помню что это такое...

Каждые выходные занимаюсь ремонтом квартиры. Последний отпуск был занят тем же, помимо возни с ребёнком.