Alison "Allie" Jones (Bridget Fonda) is a software designer in New York City. While her professional star is on the rise -- she has created a computer software package that will revolutionize the fashion world -- her p...展开ersonal life is a mess.
Allie banishes her fiance Sam Rawson (Steven Weber) from her rent-controlled apartment on Manhattan's Upper West Side, after discovering that he slept with his ex-wife. Allie finds platonic comfort in her homosexual neighbor Graham Knox (Peter Friedman), an aspiring actor with a sensitive shoulder to lean on.
Realizing that the only way to hold on to her apartment is to find a roommate, Allie places an ad and interviews a succession of unsuitable candidates before settling on the shy Hedra "Hedy" Carlson (Jennifer Jason Leigh), who, in Allie's eyes, is the ideal roomie.
Aimless and underemployed, Hedy quickly fills the void left in Allie's life by Sam's departure. Allie, meanwhile, is only too happy to allow Hedy to cook and clean for her. Their friendship deepens when Hedy brings home an adorable and -- unknown to Allie -- very expensive puppy; Allie later discovers the receipt and confronts Hedy, but Allie can't bring herself to part with the puppy.
Unknown to Allie, Hedy erases Sam's phone messages when he calls to plead for a reconciliation. Before long, she's even begun emulating the more sophisticated Allie in dress and manner. Allie passes off this strange behavior as that of an insecure but well-intentioned woman.
When Allie reconciles with Sam about a month after Hedy moved into the apartment, Allie and Sam toy with the idea of Sam moving into the apartment with Allie. Heddie goes over the edge, knowing that this means that she would have to move out of the apartment.
One afternoon, while Allie and Sam are out of the apartment, the puppy, which Allie has grown to love, plunges mysteriously to its death from a window. And before long, Hedy's closet contains the exact same clothes as Allie's, and Hedy has even had her hair cut and dyed to match Allie's look, resulting in a startling resemblance between Allie and Hedy.
More than a little unnerved, a suspicious Allie talks to Graham. Graham advises Allie to get Hedy to move out of the apartment. Allie begins to investigate Hedy's background.
Allie goes into Hedy's room and looks through her possessions, and discovers that Hedy is not who she claims to be -- Hedy's real name is Ellen Besch. Years ago, when Ellen was 9-years-old, Ellen's twin sister Judy drowned at a family picnic.
An absolutely devastated Ellen hasn't been the same since Judy's death. The bond between siblings can be strong, but it can be especially strong with twins. For years, Ellen's parents tried to explain to her that Judy's death was not her fault, but Ellen never forgave herself for living while Judy died.
Ellen, who had undergone futile counseling, had been looking for a female companion so Ellen could have a friend to replace Judy. That's why Ellen tries to look exactly like whatever roommate she had at the moment...so it would be like Ellen still had a twin sister.
Before moving in with Allie, Ellen had lived with a woman in Tampa. That didn't work out, so Ellen killed the woman and went to New York, later moving in with Allie. No sooner has Allie confided her mounting suspicions to Graham than he receives a brutal beating from Hedy.
Dozing in bed, Sam gets a visit from Ellen, who is decked out as Allie. Ellen performs oral sex on him. Sam is too self-involved to notice that she is not Allie. Then he catches on. Sam decides to tell Allie what Ellen is up to, but before Sam can do that, Ellen kills Sam with a spiked heel.
The next thing Ellen does is take Allie hostage in Graham's apartment. Mitchell Meyerson (Stephen Tobolowsky), a client of Allie's who had nearly raped her, comes to the apartment looking for Allie, because Allie had retaliated by erasing all of Mitchell's computer files.
Mitchell notices that Allie has been tied up. He throws Ellen over a table, but she grabs a gun, puts a pillow over Mitchell's face, and shoots him, using the pillow as a silencer.
Having saved Allie from another rape attempt, Ellen's logic assures her that Allie will thank her for this protective care, but when Allie responds by trying to escape, Ellen's violence is turned toward Allie.
This leads to a bloody, extended battle deep within the apartment building's basement as Allie has to fight for her life against Ellen. It ends when Allie, in self defense, stabs Ellen to death with a screwdriver.