diff -U0 ./ChangeLog.old ./ChangeLog
--- ./ChangeLog.old 2007-10-19 10:01:30.000000000 -0700
+++ ./ChangeLog 2007-10-19 10:02:29.000000000 -0700
@@ -0,0 +1,4 @@
+2007-10-19 Xavier Claessens <xclaesse@gmail.com>
+ * libempathy-gtk/empathy-chat-window.c: If EmpathyChat object does not
+ exist when DnD a contact, create one. Fixes bug #483168.
+
diff -up ./libempathy-gtk/empathy-chat-window.c.old ./libempathy-gtk/empathy-chat-window.c
--- ./libempathy-gtk/empathy-chat-window.c.old 2007-10-19 10:02:50.000000000 -0700
+++ ./libempathy-gtk/empathy-chat-window.c 2007-10-19 10:04:48.000000000 -0700
@@ -1607,11 +1607,17 @@ chat_window_drag_data_received (GtkWidge
account = empathy_contact_get_account (contact);
chat = empathy_chat_window_find_chat (account, id);
+ if (chat) {
+ g_object_ref (chat);
+ } else {
+ chat = EMPATHY_CHAT (empathy_private_chat_new_with_contact (contact));
+ }
old_window = empathy_chat_get_window (chat);
if (old_window) {
if (old_window == window) {
gtk_drag_finish (context, TRUE, FALSE, time);
+ g_object_unref(chat);
return;
}