Another very strong episode, and the first real character piece of the season. It does a wonderful job of building Cordy's character by making her question whether she's being punished for her bad actions. I actually rather enjoy the Doyle subplot; it ends up being merged with the Cordy plot pretty well, even if Griff and his cronies are only really there so David Boreanaz can fight someone. The mystery surrounding the ghost haunting the apartment is well paced and structured, and I still get a kick out of the final twist where it turns out that Maude killed her own son, instead of the other way around.
All in all, a really enjoyable episode, and better than the previous two.