I agree. The code for that feature is a horrible mess and needs to he completely rewritten.
The curse of eternal refactoring!