--- /dev/null
+diff -urN evolution-data-server.orig/addressbook/backends/groupwise/e-book-backend-groupwise.c evolution-data-server/addressbook/backends/groupwise/e-book-backend-groupwise.c
+--- evolution-data-server.orig/addressbook/backends/groupwise/e-book-backend-groupwise.c 2004-06-02 12:31:44.303464592 +0200
++++ evolution-data-server/addressbook/backends/groupwise/e-book-backend-groupwise.c 2004-06-02 12:49:41.386723048 +0200
+@@ -123,6 +123,7 @@
+ GList *aim_list = NULL;
+ GList *icq_list = NULL;
+ GList *yahoo_list = NULL;
++ GList *gadugadu_list = NULL;
+ GList *msn_list = NULL;
+ GList *jabber_list = NULL;
+ GList *groupwise_list = NULL;
+@@ -158,6 +159,10 @@
+ im_field_id = E_CONTACT_IM_YAHOO;
+ im_attr_list = &yahoo_list;
+ }
++ else if (g_str_equal (address->service, "gadu-gadu")) {
++ im_field_id = E_CONTACT_IM_GADUGADU;
++ im_attr_list = &gadugadu_list;
++ }
+ else if (g_str_equal (address->service, "jabber")) {
+ im_field_id = E_CONTACT_IM_JABBER;
+ im_attr_list = &jabber_list;
+@@ -180,6 +185,7 @@
+ e_contact_set_attributes (contact, E_CONTACT_IM_JABBER, jabber_list);
+ e_contact_set_attributes (contact, E_CONTACT_IM_ICQ, icq_list);
+ e_contact_set_attributes (contact, E_CONTACT_IM_YAHOO, yahoo_list);
++ e_contact_set_attributes (contact, E_CONTACT_IM_GADUGADU, gadugadu_list);
+ e_contact_set_attributes (contact, E_CONTACT_IM_MSN, msn_list);
+ e_contact_set_attributes (contact, E_CONTACT_IM_GROUPWISE, groupwise_list);
+
+@@ -187,6 +193,7 @@
+ free_attr_list (jabber_list);
+ free_attr_list (icq_list);
+ free_attr_list (yahoo_list);
++ free_attr_list (gadugadu_list);
+ free_attr_list (msn_list);
+ free_attr_list (groupwise_list);
+ }
+@@ -219,6 +226,7 @@
+
+ append_ims_to_list (&im_list, contact, "aim", E_CONTACT_IM_AIM);
+ append_ims_to_list (&im_list, contact, "yahoo", E_CONTACT_IM_YAHOO);
++ append_ims_to_list (&im_list, contact, "gadu-gadu", E_CONTACT_IM_GADUGADU);
+ append_ims_to_list (&im_list, contact, "icq", E_CONTACT_IM_ICQ);
+ append_ims_to_list (&im_list, contact, "msn", E_CONTACT_IM_MSN);
+ append_ims_to_list (&im_list, contact, "jabber", E_CONTACT_IM_JABBER);
+@@ -1968,6 +1976,7 @@
+ fields = g_list_append (fields, g_strdup (e_contact_field_name (E_CONTACT_EMAIL_3)));
+ fields = g_list_append (fields, g_strdup (e_contact_field_name (E_CONTACT_IM_ICQ)));
+ fields = g_list_append (fields, g_strdup (e_contact_field_name (E_CONTACT_IM_YAHOO)));
++ fields = g_list_append (fields, g_strdup (e_contact_field_name (E_CONTACT_IM_GADUGADU)));
+ fields = g_list_append (fields, g_strdup (e_contact_field_name (E_CONTACT_IM_MSN)));
+ fields = g_list_append (fields, g_strdup (e_contact_field_name (E_CONTACT_IM_JABBER)));
+ fields = g_list_append (fields, g_strdup (e_contact_field_name (E_CONTACT_IM_GROUPWISE)));
+diff -urN evolution-data-server.orig/addressbook/libebook/e-contact.c evolution-data-server/addressbook/libebook/e-contact.c
+--- evolution-data-server.orig/addressbook/libebook/e-contact.c 2004-06-02 12:31:44.883376432 +0200
++++ evolution-data-server/addressbook/libebook/e-contact.c 2004-06-02 12:41:36.416449736 +0200
+@@ -155,6 +155,7 @@
+ MULTI_LIST_FIELD (E_CONTACT_IM_GROUPWISE, EVC_X_GROUPWISE, "im_groupwise", N_("Groupwise Id List"), FALSE),
+ MULTI_LIST_FIELD (E_CONTACT_IM_JABBER, EVC_X_JABBER, "im_jabber", N_("Jabber Id List"), FALSE),
+ MULTI_LIST_FIELD (E_CONTACT_IM_YAHOO, EVC_X_YAHOO, "im_yahoo", N_("Yahoo! Screen Name List"), FALSE),
++ MULTI_LIST_FIELD (E_CONTACT_IM_GADUGADU, EVC_X_GADUGADU, "im_gadugadu", N_("Gadu-Gadu Id List"), FALSE),
+ MULTI_LIST_FIELD (E_CONTACT_IM_MSN, EVC_X_MSN, "im_msn", N_("MSN Screen Name List"), FALSE),
+ MULTI_LIST_FIELD (E_CONTACT_IM_ICQ, EVC_X_ICQ, "im_icq", N_("ICQ Id List"), FALSE),
+
+@@ -182,6 +183,12 @@
+ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_YAHOO_WORK_1, EVC_X_YAHOO, "im_yahoo_work_1", N_("Yahoo! Work Screen Name 1"), FALSE, "WORK", 0),
+ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_YAHOO_WORK_2, EVC_X_YAHOO, "im_yahoo_work_2", N_("Yahoo! Work Screen Name 2"), FALSE, "WORK", 1),
+ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_YAHOO_WORK_3, EVC_X_YAHOO, "im_yahoo_work_3", N_("Yahoo! Work Screen Name 3"), FALSE, "WORK", 2),
++ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_GADUGADU_HOME_1, EVC_X_GADUGADU, "im_gadugadu_home_1", N_("Gadu-Gadu Home Id 1"), FALSE, "HOME", 0),
++ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_GADUGADU_HOME_2, EVC_X_GADUGADU, "im_gadugadu_home_2", N_("Gadu-Gadu Home Id 2"), FALSE, "HOME", 1),
++ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_GADUGADU_HOME_3, EVC_X_GADUGADU, "im_gadugadu_home_3", N_("Gadu-Gadu Home Id 3"), FALSE, "HOME", 2),
++ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_GADUGADU_WORK_1, EVC_X_GADUGADU, "im_gadugadu_work_1", N_("Gadu-Gadu Work Id 1"), FALSE, "WORK", 0),
++ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_GADUGADU_WORK_2, EVC_X_GADUGADU, "im_gadugadu_work_2", N_("Gadu-Gadu Work Id 2"), FALSE, "WORK", 1),
++ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_GADUGADU_WORK_3, EVC_X_GADUGADU, "im_gadugadu_work_3", N_("Gadu-Gadu Work Id 3"), FALSE, "WORK", 2),
+ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_MSN_HOME_1, EVC_X_MSN, "im_msn_home_1", N_("MSN Home Screen Name 1"), FALSE, "HOME", 0),
+ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_MSN_HOME_2, EVC_X_MSN, "im_msn_home_2", N_("MSN Home Screen Name 2"), FALSE, "HOME", 1),
+ ATTR_TYPE_STR_FIELD (E_CONTACT_IM_MSN_HOME_3, EVC_X_MSN, "im_msn_home_3", N_("MSN Home Screen Name 3"), FALSE, "HOME", 2),
+diff -urN evolution-data-server.orig/addressbook/libebook/e-contact.h evolution-data-server/addressbook/libebook/e-contact.h
+--- evolution-data-server.orig/addressbook/libebook/e-contact.h 2004-06-02 12:31:44.883376432 +0200
++++ evolution-data-server/addressbook/libebook/e-contact.h 2004-06-02 12:44:07.738445296 +0200
+@@ -128,6 +128,12 @@
+ E_CONTACT_IM_YAHOO_WORK_1, /* Synthetic string field */
+ E_CONTACT_IM_YAHOO_WORK_2, /* Synthetic string field */
+ E_CONTACT_IM_YAHOO_WORK_3, /* Synthetic string field */
++ E_CONTACT_IM_GADUGADU_HOME_1, /* Synthetic string field */
++ E_CONTACT_IM_GADUGADU_HOME_2, /* Synthetic string field */
++ E_CONTACT_IM_GADUGADU_HOME_3, /* Synthetic string field */
++ E_CONTACT_IM_GADUGADU_WORK_1, /* Synthetic string field */
++ E_CONTACT_IM_GADUGADU_WORK_2, /* Synthetic string field */
++ E_CONTACT_IM_GADUGADU_WORK_3, /* Synthetic string field */
+ E_CONTACT_IM_MSN_HOME_1, /* Synthetic string field */
+ E_CONTACT_IM_MSN_HOME_2, /* Synthetic string field */
+ E_CONTACT_IM_MSN_HOME_3, /* Synthetic string field */
+@@ -166,6 +172,7 @@
+ E_CONTACT_IM_GROUPWISE, /* Multi-valued */
+ E_CONTACT_IM_JABBER, /* Multi-valued */
+ E_CONTACT_IM_YAHOO, /* Multi-valued */
++ E_CONTACT_IM_GADUGADU, /* Multi-valued */
+ E_CONTACT_IM_MSN, /* Multi-valued */
+ E_CONTACT_IM_ICQ, /* Multi-valued */
+
+diff -urN evolution-data-server.orig/addressbook/libebook/e-vcard.h evolution-data-server/addressbook/libebook/e-vcard.h
+--- evolution-data-server.orig/addressbook/libebook/e-vcard.h 2004-06-02 12:31:45.544275960 +0200
++++ evolution-data-server/addressbook/libebook/e-vcard.h 2004-06-02 12:45:00.322451312 +0200
+@@ -85,6 +85,7 @@
+ #define EVC_X_VIDEO_URL "X-EVOLUTION-VIDEO-URL"
+ #define EVC_X_WANTS_HTML "X-MOZILLA-HTML"
+ #define EVC_X_YAHOO "X-YAHOO"
++#define EVC_X_GADUGADU "X-GADUGADU"
+ #define EVC_X_GROUPWISE "X-GROUPWISE"
+
+ typedef enum {
+diff -urN evolution-data-server.orig/addressbook/libedata-book/e-book-backend-sexp.c evolution-data-server/addressbook/libedata-book/e-book-backend-sexp.c
+--- evolution-data-server.orig/addressbook/libedata-book/e-book-backend-sexp.c 2004-06-02 12:31:45.546275656 +0200
++++ evolution-data-server/addressbook/libedata-book/e-book-backend-sexp.c 2004-06-02 12:34:22.944347512 +0200
+@@ -89,6 +89,13 @@
+ }
+
+ static gboolean
++compare_im_gadugadu (EContact *contact, const char *str,
++ char *(*compare)(const char*, const char*))
++{
++ return compare_im (contact, str, compare, E_CONTACT_IM_GADUGADU);
++}
++
++static gboolean
+ compare_im_jabber (EContact *contact, const char *str,
+ char *(*compare)(const char*, const char*))
+ {
+@@ -221,6 +228,7 @@
+ LIST_PROP ( "im_icq", compare_im_icq ),
+ LIST_PROP ( "im_jabber", compare_im_jabber ),
+ LIST_PROP ( "im_yahoo", compare_im_yahoo ),
++ LIST_PROP ( "im_gadugadu", compare_im_gadugadu ),
+ LIST_PROP ( "email", compare_email ),
+ LIST_PROP ( "phone", compare_phone ),
+ LIST_PROP ( "address", compare_address ),