diff -Naur -x Makefile -x Makefile.in ../sylpheedclaws/sylpheed-claws/src/ldapquery.c ./ldapquery.c
--- ../sylpheedclaws/sylpheed-claws/src/ldapquery.c	2007-04-04 15:28:50.000000000 +0200
+++ ./ldapquery.c	2007-04-04 14:52:00.000000000 +0200
@@ -493,6 +493,7 @@
 	addritem_person_set_common_name( person, fullName );
 	addritem_person_set_first_name( person, firstName );
 	addritem_person_set_last_name( person, lastName );
+	addritem_person_set_nick_name( person, fullName );
 	addrcache_id_person( cache, person );
 	addritem_person_set_external_id( person, dn );
 	
@@ -567,6 +568,9 @@
 		}
 		else if( strcasecmp( attribute, ctl->attribLName ) == 0 ) {
 			listLast = ldapqry_add_single_value( ld, e, attribute );
+		}
+		else if( strcasecmp( attribute, ctl->attribDName ) == 0 ) {
+			listDisplay = ldapqry_add_single_value( ld, e, attribute );
 		} else {
 			GSList *attlist = ldapqry_add_single_value( ld, e, attribute );
 			UserAttribute *attrib = addritem_create_attribute();
@@ -832,9 +836,6 @@
 		if( ldapqry_get_stop_flag( qry ) ) {
 			break;
 		}
-		else if( strcasecmp( attribute, ctl->attribDName ) == 0 ) {
-			listDisplay = ldapqry_add_single_value( ld, e, attribute );
-		}
 
 		/* Retrieve entry */		
 		if( first ) {
diff -Naur -x Makefile -x Makefile.in ../sylpheedclaws/sylpheed-claws/src/ldapupdate.c ./ldapupdate.c
--- ../sylpheedclaws/sylpheed-claws/src/ldapupdate.c	2007-04-04 15:28:50.000000000 +0200
+++ ./ldapupdate.c	2007-04-04 14:34:38.000000000 +0200
@@ -28,6 +28,7 @@
 #ifdef USE_LDAP
 
 #include <glib.h>
+#include <glib/gi18n.h>
 #include <sys/time.h>
 #include <string.h>
 #include <ldap.h>
@@ -154,7 +155,7 @@
 		case ADD_ENTRY: g_hash_table_insert(array, "status", "new"); break;
 		case UPDATE_ENTRY: g_hash_table_insert(array, "status", "update"); break;
 		case DELETE_ENTRY: g_hash_table_insert(array, "status", "delete"); break;
-		default: g_critical("ldapsvr_retrieve_item_person->Unknown status: %d", person->status);
+		default: g_critical(_("ldapsvr_retrieve_item_person->Unknown status: %d"), person->status);
 	}
 	g_hash_table_insert(array, "uid", ADDRITEM_ID(person));
 	g_hash_table_insert(array, "cn", ADDRITEM_NAME(person));
@@ -404,28 +405,28 @@
 			}
 			list = g_list_next(list);
 		}
-		// if compare and rdn->attribute are equal then last email removed/empty
+		/* if compare and rdn->attribute are equal then last email removed/empty  */
 		if (strcmp(compare, rdn->attribute) != 0) {
-	 		// RDN changed. Find new
+	 		/* RDN changed. Find new */
 			update_rdn(rdn, compare, rest);
 			g_free(compare);
 			return rdn;
 		}
 		else {
-			// We cannot remove dn
+			/* We cannot remove dn */
 			g_free(compare);
 			return NULL;
 		}
 	}
 	else {
 		compare = g_hash_table_lookup(hash, rdn->attribute);
-		// if compare and rdn->attribute are equal then dn removed/empty
+		/* if compare and rdn->attribute are equal then dn removed/empty */
 		if (strcmp(compare, rdn->attribute) != 0) {
 			update_rdn(rdn, compare, rest);
 			return rdn;
 		}
 		else {
-			// We cannot remove dn
+			/* We cannot remove dn */
 			return NULL;
 		}
 	}
@@ -482,7 +483,7 @@
 	if (ld)
 		ldapsvr_disconnect(ld);
 	ldapsvr_force_refresh(server);
-	ldapsvr_free_all_query(server);
+/*	ldapsvr_free_all_query(server);*/
 }
 
 /**
@@ -523,7 +524,7 @@
 		start = g_strstr_len(dn, strlen(dn), ",ou=");
 	if (start == NULL)
 		return NULL;
-	// avoid futile warning
+	/* avoid futile warning */
 	if (*start++);
 	gchar *end = g_strstr_len(start, strlen(start), ",");
 	gchar *item = g_strndup(start, end - start);
@@ -653,7 +654,7 @@
 	}
 	param = g_hash_table_lookup(contact, "sn");
 	if (param == NULL)
-		param = g_strdup("Some SN");
+		param = g_strdup(N_("Some SN"));
 	SETMOD(mods[cnt], modarr[cnt], LDAP_MOD_ADD, "sn", sn, param);
 	cnt++;
 	mods[cnt] = NULL;
@@ -689,10 +690,10 @@
 	gint cnt = 0;
 	gchar *param, *dn;
 	Rdn *NoRemove = NULL;
-    char *cn[]   = {NULL, NULL};
-    char *givenName[]   = {NULL, NULL};
+    char *cn[] = {NULL, NULL};
+    char *givenName[] = {NULL, NULL};
     char **mail = NULL;
-    char *sn[]   = {NULL, NULL};
+    char *sn[] = {NULL, NULL};
 
 	g_return_if_fail(server != NULL || contact != NULL);
 	ld = ldapsvr_connect(server->control);
@@ -740,8 +741,9 @@
 	}
 	param = g_hash_table_lookup(contact , "cn");
 	if (param && (strcmp(param, NoRemove->value) != 0 && strcmp("cn", NoRemove->attribute) != 0)) {
-		SETMOD(mods[cnt], modarr[cnt], LDAP_MOD_REPLACE, "cn", cn, param);
+		SETMOD(mods[cnt], modarr[cnt], LDAP_MOD_REPLACE, "displayName", cn, param);
 		cnt++;
+		g_hash_table_insert(contact, "displayName", param);
 	}
 	param = g_hash_table_lookup(contact , "givenName");
 	if (param && (strcmp(param, NoRemove->value) != 0 && strcmp("givenName", NoRemove->attribute) != 0)) {
@@ -908,7 +910,7 @@
 			ldapsvr_delete_contact(server, contact);
 		}
 		else
-			g_critical("ldapsvr_update_book->Unknown status: %s\n", status);
+			g_critical(_("ldapsvr_update_book->Unknown status: %s\n"), status);
 		contacts = g_list_next(contacts);
 	}
 	ldapsvr_free_hashtable(head);
