Другая вариация была здесь: http://old.reactor.cc/post/2966589