I'm just glad I was finally able to get monkchat working again, I missed using it. The code is pretty easy to follow, and uses a style that's very close to my preferences, so I enjoy working on it.
I made a few additional changes after I posted the patches: I've made the horizontal scrollbars for both widgets non-optional. This will prevent the "oscillating scrollbar" phenomenon that occurs when the widgets' contents cause the x scrollbar to be packed and forgotten in an infinite loop. I've also added mousewheel bindings to both widgets. I'll post those patches, along with a few others in the near future.
I agree that a formal XML parser is needed. I was thinking of using XML::Simple. I'll do some work on that and post patches for testing.