make the submit callback more robust and handle special case personal
data module (fixes #2, thanks to cliff)