Мне наконец подсказали работающее решение косяка в пакете listings с русскими буквами в utf-8. Решение состоит из пакета listingsutf8 и некоторой магии (в строчке inputencoding=utf8/koi8-r). Проверено под Texlive 2009.
\documentclass{article}
\usepackage[utf8x]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[russian,english]{babel}
\usepackage{listingsutf8}
\begin{document}
\lstset{language=C,
inputencoding=utf8/koi8-r,
showstringspaces=false}
\lstinputlisting[caption=Тестовый листинг]{test.c}
\end{document}
Я знаю, что комментарии на русском не нужны.
PS
не работает.