Kyle Pratt (Jodie Foster), an American aircraft engineer employed in Berlin, Germany, is widowed with a six-year-old daughter Julia after her husband David falls off the roof of their building to his death. Kyle decides to bury him in their hometown back in the U.S., on Long Island, New York. They fly aboard a passenger aircraft, the engines of which Kyle helped design. After falling asleep, Kyle wakes to find that Julia is missing. She begins to panic, and Captain Marcus Rich (Sean Bean) is forced to conduct a search. None of the passengers remembers seeing her daughter; Julia has no register in either the Berlin airport or the passenger manifest; and Kyle cannot find Julia's boarding pass. Marcus and the other crew members suspect that Kyle has become unhinged by her husband's death and has imagined bringing her daughter aboard. One flight attendant, Stephanie (Kate Beahan), is particularly unsympathetic. Faced with the crew's growing skepticism regarding her daughter's existence, Kyle becomes more and more desperate. Because of her increasingly erratic, panicked behavior, Air Marshal Gene Carson (Peter Sarsgaard) is ordered to handcuff and guard her.
Capt. Rich receives a wire from the hospital in Berlin, saying Julia was with her father when he fell off the roof and also died of internal injuries. Kyle furiously denies it. The crew believes she is delusional. A therapist, Lisa (Greta Scacchi), tries to console her, causing Kyle to doubt her own sanity until she notices that a heart Julia had drawn earlier on the window next to her seat is real. Kyle is emboldened and convinces the therapist to let her use the bathroom. Instead of doing so, she climbs into the upper compartment and sabotages the aircraft's electronics, deploying the oxygen masks and interrupting lighting. She uses the chaos to take a dumbwaiter to the lower freight deck. She desperately searches for Julia and finally opens her husband's casket, at which she emotionally breaks down. Carson finds her, puts her in handcuffs and escorts her back, announcing that she will be arrested as soon as they land.
Kyle makes a final plea to Carson that she needs to search the plane upon landing. Carson considers for a moment, then decides to speak to the captain. He sneaks back into the freight deck to remove two explosives and a detonator concealed in David's casket, then climbs down to the Avionics Section, revealing Julia (Marlene Lawston) who is sleeping (presumably drugged). He attaches the explosives to the side of the platform. At this point, it is revealed that Carson, Stephanie, and the mortuary director in Berlin (Christian Berkel) are part of a conspiracy. Carson tells Rich that Kyle is a hijacker and is threatening to blow up the aircraft unless the airline transfers $50 million into a bank account. The conspirators actually murdered David and abducted Julia to frame Kyle. Carson tells an unnerved Stephanie that he intends to blow up the aircraft, killing the unconscious Julia and leaving Kyle dead with the detonator in her hand.
After making an emergency landing at Goose Bay Airport in Goose Bay, Labrador, Canada, the passengers exit the aircraft as the tarmac is surrounded by U.S. FBI agents. As the captain is leaving, Kyle runs to speak to him with Carson in tow. The captain demands she give up the charade, stating the $50 million she demanded has been paid. Realizing the truth, Kyle decides to take advantage of the role of hijacker, demanding Carson stay on board and the crew disembark. Carson hesitates but realizes that, if he refuses, it would be seen that the charade was his.
As soon as the plane's door closes, Kyle knocks Carson unconscious with a fire extinguisher, handcuffs him to a rail, and takes the detonator from his pocket. Stephanie comes out of hiding. Carson regains consciousness and fires at Kyle with a concealed gun, sending her running. He chases after Kyle, shooting, until she locks herself in the cockpit. She opens a hatch door to the plane's attic and throws out a binder to fool him. Carson hears the upstairs thud and leaves. Kyle exits and encounters a guilt-ridden Stephanie, who panics and flees the plane.
Kyle searches Avionics and finds the unconscious Julia. Carson soon follows and, while searching, reveals to her how he secretly gagged and dumped her daughter into the food bin and disparages the passengers who would never care enough to notice. Carson points his gun to where Julia lay before but finds it empty. He turns around and sees Kyle carrying Julia into the hatch of the cargo hold, with the detonator in hand. Carson shoots at her as she closes the door. With the non-combustible walls of the hold to protect them, Kyle detonates the explosives while leaning on David's coffin, killing Carson. As Kyle carries her daughter out onto the tarmac, all the passengers are shocked upon realizing that she had been telling the truth the whole time.
At the airport terminal, Capt. Rich comments to Kyle on how much the two of them look alike before apologizing for his skepticism. Stephanie is led away by the FBI in handcuffs. An agent approaches Kyle and asks her to identify the mortuary director in Berlin who has been detained. Kyle carries the still unconscious Julia through the crowd of passengers, and one of the Arab passengers helps pick up her bag, as an act of respect and forgiveness for her having earlier suspected him of being involved in the kidnapping. Before loading her daughter into a van to take them away, Julia wakes up and sleepily asks "Are we there yet?" as they prepare to leave.

Question: What does Kyle see that convinces her that she is not crazy?
Answer: She sees a heart that her daughter had drawn on the wall. 
Alternative answer: A heart drawn on the window.