Para evitar consecuencias legales, el equipo retrasó la filmación de escenas sexualmente explícitas hasta después del cumpleaños 18 del actor David Kross el 4 de julio de 2008.
La primera opción de Stephen Daldry para el papel principal fue Kate Winslet, quien originalmente rechazó la oferta debido a un conflicto de programación con Sólo un sueño (2008). Cuando Nicole Kidman aceptó el papel, los productores crearon un paréntesis para permitirle terminar de filmar Australia (2008). Sin embargo, cuando Kidman estaba programada para comenzar sus escenas en la película, ella se retiró debido a su embarazo, dejando el papel. Winslet, que ahora estaba disponible, acordó reemplazar a Kidman.
David Kross, cuya lengua materna es el alemán, aprendió inglés especialmente para la película.
La omisión de Kate Winslet de Harvey Weinstein en su discurso de aceptación del Oscar fue intencional. A pesar de que ella no había sido acosada sexualmente por él, descubrió que su agresivo "comportamiento comercial" con ella a lo largo de los años era francamente repugnante y, por lo tanto, deliberadamente no se lo agradeció.
Ralph Fiennes siempre fue la primera opción para interpretar al adulto Michael.