Whether the device Jake Gyllenhaal gets himself hooked up to in Source Code is actually a time machine or a kind of mechanical scrying mirror is up for debate. What's for certain is that dying over and over again doesn't do the excellently named Colter Stevens (Gyllenhaal) any good, loop-wise. As the recently severely-injured guinea pig testing a machine that allows users to inhabit the lives of others in the recent past, Stevens has to relive a bombing on a Chicago-bound train over and over for eight minutes at a time. It's only when sympathetic project officer Goodwin (Vera Farmiga) disconnects Stevens from life support that the time loop ends and Colter gets to take a romantic stroll around Chicago landmarks with a woman he literally just met and fell in love with (Michelle Monaghan). While this finale could be interpreted as a dying dream, the end of Source Code - in which Stevens leaves a message for Goodwin in a past before the experiment takes place - implies an alternate timeline has in fact been created, a happier one where bombs don't go off and Jake Gyllenhaal doesn't die as a crispy torso in a lab.