I made just a quick hack to the code. In setMemberProperties I changes the saved value to be a string. I am not sure if this will cause any problems, but I doubt it. I also noticed a funny thing in your code compared to the MemberData code. XUFTools puts the full mapping into the properties, while MemberDataTool only puts those properties that are really defined in the tool. In the concrete use this means that with XUFTool now even information about the request gets stored in the member properties. -huima def setMemberProperties(self, mapping): '''Sets the properties of the member. ''' #just pass the properties over to acl_users.currentPropSource memberdatatool = self.getTool() propsource = memberdatatool.acl_users.currentPropSource username = self.getUserName() for key in mapping.keys(): propsource.setUserProperty(key=key, ---->here value=str(mapping[key]), username=username) #let the parent class take care of self._members MemberData.setMemberProperties(self, mapping)