diff --git a/plugins/gtkgui/dialogs.py b/plugins/gtkgui/dialogs.py
index f59175606cb85f47105d5b56fb9f61fa55d31fa1..134d7c81ef5c6aaf51c3956a53d5d7a0a85974a3 100644
--- a/plugins/gtkgui/dialogs.py
+++ b/plugins/gtkgui/dialogs.py
@@ -583,12 +583,12 @@ class new_message_window: #FIXME: NOT READY
 		jid = userid
 		
 		# use User class, new_chat expects it that way
-		user = gtkgui.User((jid, jid, ['not in the roster'], \
-				'not in the roster', 'not in the roster', 'none', None, '', 0, ''))
-		self.plugin.contacts[self.account][jid] = [user]
+		user = gtkgui.User(jid, jid, ['not in the roster'], \
+				'not in the roster', 'not in the roster', 'none', None, '', 0, '')
+		self.plugin.roster.contacts[self.account][jid] = [user]
 		#FIXME: don't add him if we already have him (see on_message code on gtkgui.py)
 		self.plugin.roster.add_user_to_roster(user.jid, self.account)
-		self.plugin.roster.new_chat(user.jid, self.account)
+		self.plugin.roster.new_chat(user, self.account)
 		widget.get_toplevel().destroy()
 
 	def __init__(self, plugin, account):