СССР, 30-е гг. После смерти мужа Софья Петровна поступает на курсы машинописи, чтобы получить специальность и иметь возможность содержать себя и сына Колю. Будучи грамотной и аккуратной и получив высшую квалификацию, она легко устраивается на работу в крупное ленинградское издательство и уже вскоре становится заведующей машинописным бюро. Несмотря на ранние вставания, неприветливые лица в транспорте, головную боль от стука машинок и утомительность производственных собраний, работа Софье Петровне очень нравится и кажется захватывающей. В молодых машинистках она ценит прежде всего грамотность и старательность; те же уважают её и слегка побаиваются, называя за глаза классной дамой. Директор издательства — приятный, воспитанный молодой человек. Из всех девушек в бюро Софье Петровне наиболее симпатична Наташа Фроленко, «скромная, некрасивая девушка с зеленовато-серым лицом»: она всегда пишет элегантно и без единой ошибки.
Тем временем сын Софьи Петровны, Коля, совсем вырос, стал настоящим красавцем, закончил школу и вскоре вместе со своим ближайшим другом Аликом Финкельштейном поступил в машиностроительный институт. Софья Петровна гордится умным, красивым и аккуратным сыном и переживает, что у взрослого Коли нет отдельной комнаты: их уплотнили ещё в самом начале революции, и теперь бывшая квартира семьи Софьи Петровны стала коммунальной. Хотя Софья Петровна и сожалеет об этом, но принимает объяснения передового сына о «революционном смысле уплотнения буржуазных квартир». Софья Петровна начинает было подумывать об обмене одной комнаты на две с доплатой, но в этот момент «отличников учёбы, Николая Липатова и Александра Финкельштейна, по какой-то там развёрстке направляют в Свердловск, на Уралмаш, мастерами», при этом дают возможность окончить институт заочно. Софья Петровна тоскует по сыну, начинает работать гораздо больше, а в свободные вечера приглашает к себе подругу по работе Наташу Фроленко на чай. Однажды она дарит Наташе по её просьбе Колину последнюю фотографию (позже Софья Петровна понимает, что Наташа влюблена в Колю). Частенько они ходят в кино «на фильмы про лётчиков и пограничников». А Наташа делится с Софьей Петровной своими проблемами: её никак не принимают в комсомол, поскольку она из «буржуазно-помещичьей семьи». Софья Петровна очень сочувствует Наташе: такая искренняя, сердечная девушка; но сын в письме разъясняет ей, что бдительность необходима.
Годы идут, Софью Петровну повышают по службе, а между тем приближается праздник: наступает новый, 1937 г. Организация праздника поручена Софье Петровне; ей все удаётся на славу, однако общее торжество омрачает странная новость: в городе арестовано множество врачей, и среди них — доктор Кипарисов, сослуживец покойного мужа Софьи Петровны. Из газет следует, что врачи связаны с террористами и фашистскими шпионами. С трудом верится насчёт Кипарисова: вроде приличный человек, «почтенный старик», но ведь у нас зря не посадят! А если Кипарисов не виноват, то его скоро выпустят и неприятное недоразумение рассеется. Через некоторое время происходит ещё более странное событие: арестовывают директора издательства. И как раз в тот момент, когда Софья Петровна и Наташа обсуждают причины ареста замечательного директора, «выдержанного партийца», при котором издательство «всегда выполняло план с превышением», внезапно раздаётся звонок в дверь: приезжает Алик со страшной вестью об аресте Коли.
Первое побуждение Софьи Петровны — «сейчас же бежать куда-то и разъяснять это чудовищное недоразумение». Алик советует идти в прокуратуру, но Софья Петровна не знает толком ни где прокуратура, ни что это такое и идёт в тюрьму, потому что случайно знает, где она. На улице, недалеко от тюрьмы, она неожиданно обнаруживает большую толпу женщин с усталыми зеленоватыми лицами, одетых не по сезону тепло: в пальто, валенках, шапках. Оказывается, это очередь в тюрьму, состоящая из родственников арестованных. Выясняется, что для того, чтобы попытаться хоть что-то узнать о своём сыне, надо записаться и отстоять огромную очередь. Но Софье Петровне удаётся узнать лишь, что Коля в тюрьме и что передачу для него не возьмут: «ему не разрешено». Она не знает ни того, за что арестован её сын, ни того, состоится ли суд, ни того, «когда же наконец кончится это глупое недоразумение и он вернётся домой»: справок нигде не дают. Каждый день она продолжает наивно ждать, что, открыв дверь в дом, увидит там сына, но дом так и остаётся пуст.
Тем временем увольняют секретаршу арестованного ранее директора как лицо, связанное с ним, и Наташу Фроленко — за опечатку, истолкованную как злостный антисоветский выпад: вместо «Красная Армия» она случайно напечатала «Крысная Армия». Софья Петровна решается вступиться за Наташу на собрании, но это не приводит ни к чему, кроме анонимного обвинения её в сообщничестве с Наташей, и Софья Петровна вынуждена уволиться. А попутно выясняется, что Коля осуждён на десять лет лагерей и что он сам признался в террористической деятельности. В отличие от Софьи Петровны, уверенной, что юного Колю просто запутали, Наташа начинает недоумевать: почему большинство арестованных призналось в своих преступлениях, ведь не могли же запутать всех?!
Между тем Алика исключают из комсомола, а вскоре и арестовывают: один из комсомольцев доносит, что Алик был дружен с Колей, а Алик отказывается «отмежеваться» от товарища. Наташа кончает с собой, написав в предсмертном письме Софье Петровне «Я не могу разобраться в настоящем моменте советской власти».
Проходят месяцы, сильно постаревшая Софья Петровна копит консервы на случай, если понадобится выслать сыну. С горя она выдумывает и повторяет окружающим, будто Колю выпустили, и сама верит в это, как вдруг приходит письмо от Коли. Он пишет, что арестован по ложному доносу одноклассника и что следователь бил его ногами. Коля очень просит мать что-нибудь предпринять, однако Кипарисова, жена репрессированного врача, отговаривает ее: тогда и её могут выслать, как высылают саму Кипарисову вслед за мужем, а сыну это ничем не поможет, только навредит. Софья Петровна долго думает, куда ей идти с этим письмом, но, поняв, что идти некуда, и совсем отчаявшись, решила сжечь письмо — опасную улику, «бросила огонь на пол и растоптала ногой».