It looks like there is a problem with implementation of current() method, which is attepmting to fetch results each time get is accessed, and these details seems to be accessible only once.
If I keep the result withing the object first time I access data it works for me as a solution.
PS. your solution is much more elegant than mine :D
PS2. Some small issue on the website. When you try to respond to a post on forum and you're not logged in, login popup pops, however its position is fixed to the top of the page, not viewport. This is problematic when we have longer page content. Took me couple of seconds to find it.