Sensing a threat, Linet calls for help and is rescued by her friend Peter the Woodsman, who asks why she can't be a good, obedient little girl.
At that moment, Godfrey himself (Craig T. Nelson) appears to remind Jeanne that today has been seven years since Percival went away to war, meaning that she is legally free to remarry.
He offers to marry her, pointing out that he is identical to his brother and that he will allow her to return to her former position as lady of the castle, but she refuses, as she still loves Percival.
The wolf transforms into his human form, Dagger (Rocco Sisto), whose power Godfrey has given up his heart and soul to possess.
Lady Jeanne sings a lullaby reassuring her that her father will soon return and that there will be nothing to fear ("You Won't Be Here in the Morning").
Nanny holds a magical ceremony in which she presents Linet with a red hooded cloak, saying it will protect her from harm and help her to see a fairy.
Everyone joins in singing and dancing, but the mood changes suddenly when Lord Godfrey appears and demands Jeanne marry him.
Meanwhile, Percival (Craig T. Nelson in a double role) arrives at Nanny Bess's cottage ("You Won't Be Here in the Morning (Reprise)").
Dagger then hears Linet approaching, so he darts inside and dons Nanny Bess' cap and nightgown.
Linet arrives at the cottage, where Dagger, disguised, convinces her to drink a potion that alters her perception, causing her to believe he is really Nanny Bess.
Percival and the villagers return to Nanny Bess's cottage and discover Dagger trapped between his wolf and human forms.
Nanny Bess orders the woodsman to cut open the wolf-creature's stomach, killing the monster and releasing an unharmed Linet, who was protected by her magic cloak.