Ok, I spent a little bit of time on it and the double entries is caused the way the menu was being monitored - it was basically looping twice for every response. I couldn't figure out why it was doing it so, I simply created a new file for the whole account system and loaded it by via the SAD gametype file. It works now, but it does need a LOT of work. But that is outside what I am prepared to do.
1 thing - you need to define self.lang. This causes a script runtime error saying that self.lang is undefined. As I understood it, it was looking for either English or Hungarian. You will need to invent a way to return the correct language and return which iprintln() should be used.