Allan Karlsson is about to celebrate his
hundredth birthday, and his retirement home in
Malmköping is planning to throw a party. Allan is not interested. Instead, he climbs out the window and disappears. He walks to the bus station, where he meets a young man who rudely demands that Allan look after his suitcase. Allan's bus arrives and he boards, taking the case with him. It is full of illegal drug money, and Allan is chased by a drug gang as well as by the police. He gets involved in various criminal activities, eventually escaping when the man from the bus station is accidentally trapped in a freezer, his body ending up in a container destined for
Djibouti. An elephant crushes another member of the gang, his remains being inadvertently sent to
Latvia in the boot of a
Ford Mustang. In parallel with Allan's adventures as a
centenarian, the novel includes flashbacks to increasingly fantastic episodes from his younger days. As a young man, Allan had worked in a
dynamite factory, his expertise taking him to Spain during the
civil war, where he accidentally saves
General Franco. In the
United States he becomes good friends with
Harry S. Truman, and helps to make the
atom bomb. After the war, Allan is sent to
China to help the
Kuomintang fight against the communists, but he loses interest and leaves for
Sweden by foot, falling in with a group of communists; they cross the
Himalayas to
Iran, where Allan is arrested. As a ruse, Allan offers to help the
Chief of Police in an assassination attempt against
Winston Churchill. Back in Sweden, the authorities doubt Allan's bomb-making expertise, but the Russians are interested and Yury Popov takes him to the
Soviet Union to meet
Stalin. Unfortunately, Stalin is offended by his having saved Franco's life, and Allan is sentenced to
hard labour in a
gulag in
Vladivostok. There he meets
Albert Einstein's fictional half brother, Herbert. Herbert and Allan escape, setting fire to the whole of Vladivostok in the process. Travelling to
North Korea during the
Korean War, they pose as Soviet marshal
Kirill Afanesievich Meretskov and his aide, and meet
Kim Il Sung and
Mao Zedong (Mao Tse-tung). Although they are quickly exposed as frauds, disaster is averted when Mao Zedong learns that Allan had saved his wife,
Jiang Qing, during the
Chinese Civil War. Allan and Herbert are given cash and dispatched to
Bali for a long holiday. There, Herbert meets a waitress, Ni Wayan Laksmi, whom he marries and renames Amanda. She corruptly makes use of the cash and gets herself appointed as Indonesia's ambassador to
France. In 1968, Amanda, Herbert and Allan travel to France. At the
Élysée Palace Amanda and Allan have lunch with
Charles de Gaulle and
Lyndon B. Johnson who is in Paris for talks on the
Vietnam War. Allan identifies the
French Interior Minister Christian Fouchet's special advisor as a Soviet spy. This pleases Johnson who makes Allan a
CIA agent. Thanks to Allan's tip-off, the
protests in Paris end. Allan is to be awarded a medal, but has already left for
Moscow. Allan is given cover in the American embassy, and is reunited with Popov. The pair decide to write intelligence reports to please both sides. Their reports result in
Richard Nixon visiting
Leonid Brezhnev, but also in both sides increasing spending on their
nuclear deterrents. As the Soviet Union starts to collapse, Allan returns to Sweden. Allan settles down to a peaceful life and adopts a cat that he names Molotov. After Molotov is killed by a fox, Allan sets a trap with dynamite, resulting in a huge explosion. Eventually, the authorities decide to send Allan to the Malmköping retirement home from where, on his hundredth birthday, he escapes. The book concludes with the 100-year-old Allan and his comrades flying to
Indonesia, where they spend time at a luxury hotel managed by Amanda and her sons. When approached by a representative of the
Indonesian government, Allan agrees to help, telling himself that at least the
Indonesian president,
Yudhoyono, is sane – unlike the other leaders he has met in his lifetime. ==Release and reception==