Think you know Ursula (Merrin Dungey)? Think again. Episode 15 of “Once Upon a Time” revealed there was more to the sea witch -- she used to be a mermaid.

Sunday night’s episode, “Poor Unfortunate Soul,” kicked off with a  flashback to Fairytale Land. Hook (Colin O’Donoghue) was on the Jolly Roger with his crew when they heard singing. Distracted by the beautiful voice, the crew almost steered into some rocks. Fortunately the singing stopped, and Hook was able to make a quick turn and avoid destroying the ship. But there was a twist. The singing was coming from a young Ursula (Tiffany Boone), Poseidon’s (Ernie Hudson) daughter. A pirate had killed Ursula’s mother, and Poseidon wanted his daughter to use her voice as revenge against humans. However, she had no plans to follow his rules. She wanted to use her voice to make people happy and stole magic to allow her to walk on land. She ultimately ended up befriending Hook. But that plan backfired for her.

In Storybrooke, Gold (Robert Carlyle) and the Queens of Darkness were torturing August (Eion Bailey) to gain information on the mysterious Author. But Regina (Lana Parrilla) quickly discovered Gold and the others weren’t telling her everything. Sneakily using her magic, Regina warned Emma (Jennifer Morrison), Mary Margaret (Ginnifer Goodwin), David (Josh Dallas) and Hook the villains were plotting something more than just finding the Author.

Regina was doing her best on the inside to find out the secret, but Hook decided to do his own investigating. Using his history with Ursula, Hook decided to make a deal with the sea witch to find out what Rumpel was hiding. What kind of deal? Return her voice.

Another flashback revealed Poseidon visited Hook to get his daughter back. Poseidon knew she wouldn’t come willingly, so he struck a deal with the pirate -- if Hook stole her singing voice, Poseidon would hand over something that would help Hook defeat Rumpelstiltskin (Robert Carlyle). Fortunately for Ursula, Hook decided not to team up with Poseidon. However, Poseidon ruined their plan to sail off into the sunset. Poseidon took away Hook’s chance at revenge for Rumpelstiltskin, and in return, Hook took away Ursula’s voice. Angry at Hook and her father, Ursula turned herself into an octopus and became the powerful sea witch from the fairytale book.

In Storybrooke, Hook approached Ursula and struck a deal. He agreed to help her land her happy ending -- get her voice back -- if she revealed what Gold was up to. She decided to play along, but they ran into a bit of trouble because her voice was stuck on the Jolly Roger in Fairytale Land. Ursula used her magic to bring it back to Storybrooke, but there was a slight issue with the ship: It was tiny and stuck in a bottle.

Will Scarlet (Michael Socha) knew how to return the ship to normal size. However, Ursula wasn’t able to get her voice back. Angry that being a villain ruined her chance of a happy ending, Ursula decided to hold back information from Hook. Needless to say, Hook wasn’t leaving without finding out what Gold was up to. But Ursula wasn’t putting up with any of his nonsense. She knocked him out and threw him overboard. Hook caught a break and was rescued by Ariel (JoAnna Garcia Swisher), who got trapped when the ship was bottled. He then asked for a favor: Find Poseidon.

While Hook worked a new angle with Ursula, Gold figured out a way to make August talk about the Author. He forced him to drink a magic potion that made his nose grow every time he lied. Thanks to the potion, Gold and the Queens of Darkness were able to learn the Sorcerer trapped the Author behind a door. But August didn’t know where the door was, only that it was somewhere in Storybrooke.

With this new information, Gold took Maleficent (Kristin Bauer van Straten) and Regina to the Sorcerer’s mansion to search for the Author's door. Cruella de Vil (Victoria Smurfit) was left alone to watch August, giving the heroes a chance to swoop in and rescue him. But Ursula returned before they could escape. She was about to strangle Mary Margaret when Hook showed up with Poseidon.

Ursula’s father apologized for using her voice against her, and used his magic to return it to her. With her singing voice back, Ursula managed to get her happy ending.

While Ursula walked away with her happiness, Hook only worried more about losing his. He revealed to Emma that she was his happy ending, and the thing he feared most was losing her. Emma kissed him after his confession, but Hook later received some bad news. Ursula kept her word and told Hook what Gold was up to: To give the villains their happy ending, he had to fill Emma’s heart with darkness … forever.

That wasn’t the only shocker in episode 15 of “Once Upon a Time.” August revealed to the heroes the Author was trapped inside the fairytale book.