OMG. She's, like, so undercover. Miley Cyrus's transition from music to movie star continues apace with this rather formulaic romp. While the movie might be crap, the truth is Cyrus comes out on top and shows she has a future in fronting teenybopper movies for some time yet.

Cyrus plays a teenage private investigator who, used to snooping on cheating husbands, graduates to the big leagues when Jeremy Piven's FBI agent asks her to go undercover at the local college. Her mission is to infiltrate a sorority to protect the daughter of a mobster (McKnight) who may or may not have evidence that can put a mob boss away. Or something like that. But the potential killer could be anyone and some serious poking about is needed to uncover the imposter.

From the off it's all rather obvious who the imposter is and there isn't enough fun and games to distract from the inevitably of it all. The romance with Joshua Bowman is tossed in for the sake of it and Cyrus's ward, McKnight, might as well not exist. Honestly, when something happens to a girl called Alex midway through, I had no idea that Alex was the girl Cyrus was meant to protect. Roommate Kelly Osbourne shows up every so often with the worst English accent for some time. With a Brummy dad in Ozzy, Kelly opts for a toff Chelsea lilt. But in some scenes it looks like her lines have been dubbed by someone else. So how much is her and how much is the voiceover? And how bad was her original stab?

But So Undercover surprisingly throws up the odd funny moment. When told her name will be Brooke Stonebridge, Cyrus reckons it sounds more like a gated community than a name; the ditsy Cotton's (Megan Park) stupidity gets the sniggers it's after; and Bowman has one of the lines of the year: when told the French can be forgiven, he comes back with 'tell that to the Algerians!' What? Where did that come from?

Cyrus herself is immune to the crap. She's watchable, and not just a substitute for Amanda Bynes.