Nicely played, Days of Our Lives.
Some viewers had guessed that Marlena and Hattie had switched places, and the version of Marlena that was stuck with Stevano sure sounded like Hattie.
But despite the obviousness of this twist, it was well-executed, and the real (we assume) Marlena showing up to rescue John was a bonus surprise.
Neither this Stevano/Gina story nor the endless stream of doppelgangers in Salem represents the best part of Days of Our Lives' long history, but that twist almost made it worth it.
Before Hattie revealed herself, viewers had to sit through three days of John and Marlena both being held captive by idiots who were trying to seduce them.
The John/Gina scenes were especially uncomfortable. Gina drugged John, tried to make him think she was Marlena, and then threatened him with a knife when he continued to reject her advances.
Days of Our Lives has enough of a problem with problematic depictions of rape without John becoming the latest victim.
Thankfully, we didn't go there since Marlena burst in at the last minute to rescue her white knight.
This was a welcome departure from the past, too.
One of my chief criticisms of John and Marlena as a couple is that their stories almost always follow the pattern of someone threatening Marlena and John having to rescue her. But this time, it was the other way around.
He may have been a pawn to you, but to me he is a knight in shining armor.Marlena
Hattie gets props too for her imitation of Marlena. When she's tried to take over for Marlena in the past, she's failed miserably. But this time, the women must have plotted this together because Hattie made a mostly believable Marlena.
Her declarations of love for John, questioning Stevano's motives, and generally acting like someone who has been a practicing psychiatrist for 30 years were impressive.
This was one of the few times using a doppelganger made sense and added to the story instead of detracting from it.
And it's made even more exciting by the fact that a bunch of people seem to finally be onto Gina and Stevano.
Rafe: Hope is not the only person who has been infested with a new host.
Kate: What the hell is that supposed to mean?
Rafe, Roman, Chad, and Abigail have figured out the whole plot, Kate already knows about it, and Shawn knows Hope is Gina.
So now it's only a matter of time before we finally wrap up this story and move onto something else.
It was weird to me that no one told Ciara that her mother isn't who she claimed to be.
Ciara turning to Kayla when she couldn't get in touch with her mother during a crisis was all well and good, but Shawn has known for at least a week that Hope isn't Hope.
Did it not occur to anyone that Ciara should be put in the loop on this? Gina is a crazy person who could do God knows what to Ciara if she thought it would help her get what she wants.
Of course, Ciara is so focused on Ben she doesn't have time for anything else -- including visiting her brother while he's in town or pausing to wonder why her mother didn't drop everything to help her in her time of need..
Anyway, while Kayla was an awesome substitute mother to Ciara, everyone's lack of concern about Hope's strange behavior ruined these scenes for me.
It iddn't make sense that nobody was concerned at all about Hope, not even for a second.
Ciara was, of course, Kayla's top priority since she was so upset, but still.
Didn't it strike anyone as odd that Hope was unreachable when Ciara was in crisis?
Also, Justin discussing laying out the facts and solving the mystery made it clear how hard Days of Our Lives was trying to shoehorn him into Steve's role.
If Steve were Steve, he'd be one of the best investigators in the business and willing to do anything for best buddy Bo's little girl. So his presence would have made sense in these scenes.
Justin's didn't, at all. He's a lawyer, and not a great one, judging by how often he loses cases. He's not an investigator of any sort.
But Days of Our Lives wants to make Justin and Kayla a thing, so he was given all the lines that belonged to the real Steve.
Anyway, his conversation with Ciara led to an obvious reveal.
Baby David was born in California. Baby David's nanny lived in California, has a mysterious past involving an abusive ex, threw away a letter about a problem in his background check, and is Will's placeholder for Sonny while WIll is in jail.
Gee, who could possibly be David's father and/or the person who killed Jordan?
This storyline was utterly predictable.
Sonny and Will's storylines always involve some bad guy swooping in while Sonny and Will are apart for whatever reason. Except for that time nice guy Paul got bounced around between them because of Will's amnesia.
I was wondering if Evan was Paul 2.0 or Leo 2.0. I guess I got my answer.
Meanwhile, Will's refusal to come forward about who was really responsible for the accident has left him stuck in a ridiculous storyline.
Ben escaping because he will face certain death in a matter of weeks if he doesn't makes sense. Sort of, anyway.
Owing his life to Clyde isn't a great option either, and the ease with which these prisoners cut a hole in a fence was unrealistic, to say the least.
But Will serving a life prison for a crime he didn't commit makes none.
Ben has tried to convince him of this on multiple occasions, but Will won't come forward because it would be hard for Maggie to deal with having killed her friend in a drunk driving accident.
There's an obvious solution to this dilemma.
All Will has to do is tell Justin, who can arrange for some sort of plea bargain for Maggie where she goes through counseling and alcohol treatment instead of serving jail time at the same time as he gets Will's plea vacated.
Justice is served, Will is free, and Evan doesn't get his claws into Sonny.
End of problem. But that's too logical for Days of Our Lives.
Instead, Will decided living on the run would stop him from having a relationship with Sonny and Ari even though he took Sonny off his visitor's list and does not see Ari while he is in jail.
And what exactly does he think will happen to him when the guards find out he helped Ben escape?
If he'd escaped with Ben and Clyde, at least he'd have a taste of freedom before he got in even more trouble than he's already in.
This silliness makes almost as much sense as Lani's continued fear of anyone doing anything to stop Gabi.
Lani keeps insisting that Gabi has all this power and nobody can do anything, and it's almost as if the writers think if they make Lani say that enough times, viewers will believe it.
The truth is that this could have been stopped before it started. Lani was still on the police force when Gabi threatened her, showed her proof the app could be used as a weapon against Julie, and warned her that she would do so if Lani didn't dump Eli.
In doing something that stupid, Gabi broke countless laws, and if you're arrested, the cops generally confiscate your property, including your phone.
If Lani had done her job, that app would have been sitting in an evidence locker while the doctors replaced Julie's pacemaker with a non-hacked one. Gabi would have gone back to prison and Lani and Eli would have lived happily ever after.
Instead, she gave into Gabi's threats for no reason whatsoever, ran away to the convent... and now thinks JJ trying to fix this is a problem.
This just goes to show that Lani still has no clue who JJ is. He didn't need Kristen to run interference. He has always excelled at undercover work and would have been fine with this mission too.
Lani and Kristen's relationship is always fun, though. I almost wish they would ditch the guys and give each other a try.
Elsewhere, the pieces were all put in place for an epic meltdown when the truth about the baby switch comes out.
Sarah and Xander, Brady and Kristen, and Eric and Nicole all reconciled. But this will never last, not with Xander being partially responsible for the baby switch and the truth on the verge of coming out.
It's a shame, because Xander and Sarah are one of the hottest new couples on Days of Our Lives.
I'm in love with you.Sarah
Xander gets to display a softness with Sarah that he never expresses in front of anyone else. When he's with her, he is a family man who is devoted to his wife and stepdaughter.
But that's all going to crumble because the baby is Kristen and Brady's. At the end of this mess, they are probably going to be the only ones left standing.
Brady and Kristen will probably get closer once they are reunited with Rachel Isabella, especially if they are united in their hatred of Xander and Victor for doing this to them.
Sarah will be on the outs with Xander, and there's no telling what might happen with Eric.
He has no reason to lash out at Nicole this time. She doesn't know anything about this.
But when Eric goes into brooding, angry mode, he lashes out at everyone and everything, and Nicole is a convenient target.
He may throw her recent lie -- the one he just forgave her for -- back in her face as proof that she's not trustworthy and accuse her of being part of this baby switch too.
He may even bring up the time she got involved in another baby switch as proof that she's no good.
Let's hope not, but would anyone be surprised?
Your turn, Days of Our Lives fanatics. Did you guess that Marlena and Hattie switched places?
Are you glad the latest doppelganger stories are about to come to an end?
And what do you think will happen when the truth comes out about the baby switch?
Hit SHOW COMMENTS and share your thoughts.
And don't forget to check back on Sunday for our Days of Our Lives Round Table discussion.
Days of Our Lives continues to air on NBC on weekday afternoons. Check your local listings for airtimes.
Jack Ori is a senior staff writer for TV Fanatic. Follow him on Twitter.