El actor Alec Guinness apareció en la película Tinker, Tailor, Soldier, Spy de 1978, otra adaptación de una novela de John Le Carré. Guinness tiene en común con McGregor, además de haber participado en versiones de las novelas de Le Carré, el haber interpretado a Obi-Wan Kenobi en la saga de Star Wars.
El filme se basa en la novela Un traidor entre nosotros, de John Le Carré. Eso sí, esta historia es muy similar a la que narrara Alfred Hitchcock en El hombre que sabía demasiado (1956). En aquel filme con James Stewart y Doris Day, también la pareja protagonista viajaba a Marruecos y se veía involucrada en circunstancias extraordinarias relacionadas con el espionaje.
En el filme, el famoso bailarín cubano Carlos Acosta hace un cameo como uno de los artistas del Bolshoi Ballet.
Los actores Ewan McGregor y Stellan Skarsgård ya habían aparecido juntos en Ángeles y Demonios (2009).
Los actores Ralph Fiennes y Mads Mikkelsen iban a aparecer en un principio en la película.