Hi I can't see anythig odd on the first glance. But have you checked the rights? The user calling the function must have the right to manage users in the acl_user! Normally you have to use proxy roles. Hope that helps. I have an external function. Maybe that helps... def insert_user_online(self, acl, name, roles=[], domains=[]): """ by Oliver Erlewein """ from AccessControl.User import User from string import strip import sys try: user = acl.data[name] msg = 'WARNING: User exists! No action taken.' except: if check_name(name) == 'OK': try: passwort = 'putpasshere' acl.data[name] = User(name, passwort, roles, domains) msg = 'Login: ' + name + '<br>Passwort: ' + passwort except: msg = 'ERROR: acl.data Call!' else: msg = 'ERROR: Only printable Characters!' return msg Regards Oliver -- GMX - Die Kommunikationsplattform im Internet. http://www.gmx.net