>>>> "SJT" == Stephen J Turnbull writes: 
I've finally guessed. =))
 SJT> AFAIK isearch does not override global-map as a whole.
Yes, and it's the problem. (suppress-keymap ...) in a nutshell undefines
all Cyrillic keys (as well as ASCII ones) -- but isearch, when called
From a mode with such a map, needs them -- and doesn't know, how to
restore them.
There's a block in isearch-mode.el:
--8<------------------------schnipp------------------------->8---
    ;; Bind all printing characters to `isearch-printing-char'.
    ;; This isn't normally necessary, but if a printing character were
    ;; bound to something other than self-insert-command in global-map,
    ;; then it would terminate the search and be executed without this.
    (let ((i 32)
	  (str (make-string 1 0)))
      (while (< i 127)
	(aset str 0 i)
	(define-key map str 'isearch-printing-char)
	(setq i (1+ i))))
--8<------------------------schnapp------------------------->8---
Is seems, the only thing one needs is to add Cyrillic initialization
there. =)) I can write mapping for all letters keysums, as Stephen
suggests, like this:
(define-key isearch-mode-map [т] 'isearch-printing-char)
But would it be grecefil? IIRC, GNU Emacs doesn't have this problem. Can
anyone say, how this case is worked around there? If there's no a better
way for two days, I'll post a quick Russian work-around, as described
before.
---Vas