don't raise done event twice, fixes #41