Murray,
Looks good to me. I prefer the explicit sig.emit() syntax to sig(), but I can live with it.
IIRC, libsigc++ supports both. -- hpreg