Katherine Heigl, Michelle Williams, Natalie Portman i Sienna Miller były brane pod uwagę do zagrania Amy Stanton. Ostatecznie rola przypadła Kate Hudson.
Emily Blunt, Anne Hathaway i Amanda Seyfried były brane pod uwagę do zagrania Joyce Lakeland. Ostatecznie rolę zagrała Jessica Alba.
Reżyserią filmu miał się zająć Marc Rocco, ale porzucił projekt. Ostatecznie film wyreżyserował Michael Winterbottom.
Sam Riley był brany pod uwagę do roli Lou Forda. Angaż otrzymał Casey Affleck.
W 2003 roku scenariusz do filmu napisał Andrew Dominik, który chciał również film wyreżyserować. W roli głównej miał zagrać Tom Cruise, ale gdy aktor zrezygnował z udziału w produkcji, projekt porzucił również Dominik i rozpoczął przygotowania do realizacji westernu "Zabójstwo Jesse'ego Jamesa przez tchórzliwego Roberta Forda".
Zdjęcia do filmu nakręcono w Oklahoma City, New Cordell, Enid, Guthrie, Tulsa i Hotelu Skirvin Hilton Hotel (Oklahoma, USA) oraz w Santa Fe (Nowy Meksyk, USA).
Okres zdjęciowy filmu trwał od 18 maja do czerwca 2009 roku.