[4.0 stars] [IMDb Link] [Amazon Link]

I think this is the first James McAvoy movie I've seen where I haven't wanted to give him a good slap. There's something about him…

But here "Slappy" plays [small spoiler alert] a couple dozen different characters. And, what do you know, he's actually very good at that.

Things kick off when he abducts three teenage girls; two, Claire and Marcia, are good-time partiers. But the third, Casey, is unplanned collateral damage, she's unpopular, dark, and moody, and is only in the mix due to a spontaneous ride offer from Claire's dad.

So who do you think will be the plucky heroine here? Good guess.

Also in the mix is Betty Buckley, playing the villain's shrink. It's through her that we gain insights as to what makes the bad guy tick. But she gets surprised at the sheer nature of his disorder. Right in time to be … too late. (Geez, didn't she play the same sort of role in Carrie, the Sissy Spacek one? Yup.)

The movie is written and directed by M. Night Shyamalan, and it's kind of a return to form for him, after a string of poorly-performing movies. And here's another spoiler: the final scene reveals a surprising connection to a previous Shyamalan movie. And, oops, looking at IMDB shows that its actually a sequel setup. I'm in.