Учительница узнала, что её спящий на уроках ученик-троечник тратит всё время, помогая собакам, которых хозяева или бросили, или не могут выгуливать из-за болезни. Она изменила мнение о нём к лучшему.
Молодая учительница Евгения Ивановна, которую за глаза звали Женечкой, настороженно относилась к своему ученику Косте. Он спал на уроках, зевал, широко открывая пасть, и снова засыпал. Женечка спрашивала, почему Коста зевает, от скуки или недосыпа, но тот не отвечал — он был молчальником.
Люди недоверчиво относятся к молчальникам. Никто не знает, что у них, молчальников, на уме: плохое или хорошее. На всякий случай думают, что плохое.
Однажды Коста принёс в класс пучок тонкий прутиков и поставил их в банку с водой. Одноклассники смеялись над ним, пытались сделать из прутиков веник и подмести пол. Коста отнимал их, снова ставил в банку, каждый день менял воду, и однажды прутики покрылись светло-лиловыми цветами и молодыми листочками, хотя за окном ещё лежал снег.
Столпившись у окна, одноклассники нюхали цветы и спрашивали, что это за растение. Коста угрюмо буркнул, что это багульник, и ушёл. С этого дня Женечка начала наблюдать за мальчиком и заметила, что после звонка с последнего урока он сломя голову вылетал из класса, словно опаздывал куда-то.
Одноклассники встречали Косту с собаками разных пород и стали говорить, что он держит трёх собак — огненно-рыжего сеттера, могучего боксёра и угольно-чёрную таксу. На самом деле у Косты не было ни одной собаки. Возвращаясь с работы, родители заставали его за уроками и не подозревали, что он только что вернулся домой и еле успел очистить штаны от собачьей шерсти.
Однажды Женечка решила проследить за Костой. Мальчик забежал домой, поел, захватил с собой остатки обеда и отправился в путь. Сначала он выгулял рыжего сеттера, хозяин которого, одноногий инвалид, не мог сделать этого. Затем с помощью лестницы Коста забрался на балкон двухэтажного дома и накормил боксёра с больной лапой, которого бросили хозяева — уехали, заперев собаку на балконе.
Последней была чёрная такса, принадлежавшая мальчику, прикованному болезнью к постели. Мама больного мальчика хотела избавиться от таксы, потому что её некому было выгуливать по утрам. Коста пообещал гулять с собакой каждое утро до школы. Женечка слышала, как он говорит больному, что пока тянет на тройки, только спать очень хочется.
… она молча шла по следам своего ученика, который отвратительно зевал на уроках и слыл молчальником. Теперь он менялся в её глазах, как веточка багульника.
Выгуляв таксу, Коста пошёл за город, к морю. Там у кромки прибоя стоял огромная, головастая, но очень худая собака, «из тех, что спасают людей, застигнутых в горах снежными лавинами», и не отрывала глаз от моря. Коста с трудом заставил собаку поесть и погулять, и всё пытался объяснить ей, что тот, кого она ждёт, погиб и больше никогда не вернётся. Собака не верила и упорно ждала.
Женечка перестала прятаться, Коста увидел её, но почему-то не удивился. Он рассказал, что устроил для собаки дом под перевёрнутой лодкой и каждый день подкармливает её. Мальчик помогал собакам, потому что они «всегда ждут… даже погибших». В город Женечка и Коста возвращались вместе.
На следующий день Коста снова заснул на уроке. Одноклассники начали смеяться, но Женечка шикнула на них и рассказала, почему Коста так устаёт. После последнего звонка Женечка осторожно разбудила мальчика, он вскочил и скрылся за дверью.