diff -ruN old/compose_addressbook/compose_addressbook.js compose_addressbook/compose_addressbook.js
--- old/compose_addressbook/compose_addressbook.js	2011-03-30 05:37:23.000000000 -0400
+++ compose_addressbook/compose_addressbook.js	2011-11-20 14:50:17.689485181 -0500
@@ -29,7 +29,7 @@
     $("#compose_addressbook_dialog").dialog({
       autoOpen: false,
       modal: false,
-      resizable: false,
+      resizable: true,
       width: 285,
       height: 500,
       minHeight: 400,
@@ -74,6 +74,12 @@
             $(this).parent().hide();
           }
         });
+        $('#compose_addressbook_table').find('td').each(function() {
+          var content = $(this).attr('title');
+          if(regexp.test(content)) {
+            $(this).parent().show();
+          }
+        });
       });
     } else {
       $('#compose_addressbook_filter').bind((bw.safari || bw.ie ? 'keydown' : 'keypress'), function(evt) {
@@ -124,6 +130,7 @@
 {
   var addresses = data.addresses;
   var name;
+  var nickname;
   var email;
   
   // save the addresses for later use
@@ -131,6 +138,7 @@
 
   for(var j=0; j<addresses.length; j++) {
     var name = addresses[j].name;
+    var nickname = addresses[j].nickname;
     
     if(addresses[j].id) {
       email = 'address group';
@@ -138,18 +146,25 @@
       email = addresses[j].email;
     }
     // add address to the row
-    compose_addressbook_add(name,email,j);    
+    compose_addressbook_add(nickname,name,email,j);    
   }
 }
 
-function compose_addressbook_add(address,email,id) {
+function compose_addressbook_add(nick,address,email,id) {
   var row = document.createElement('tr');
   row.id = 'rcmrow'+id;
+
   td = document.createElement('td');
   td.innerHTML = address;
   td.setAttribute('title', email);
   td.style.cursor='pointer';
   row.appendChild(td);
+
+  td = document.createElement('td');
+  td.innerHTML = nick;
+  td.setAttribute('title', nick);
+  td.style.cursor='pointer';
+  row.appendChild(td);
   
   // add element to the list
   rcmail.compose_addressbook_list.insert_row(row,0);
diff -ruN old/compose_addressbook/compose_addressbook.php compose_addressbook/compose_addressbook.php
--- old/compose_addressbook/compose_addressbook.php	2011-05-10 02:24:06.000000000 -0400
+++ compose_addressbook/compose_addressbook.php	2011-11-20 14:38:00.263989312 -0500
@@ -36,7 +36,7 @@
     $this->include_stylesheet("$skin_path/compose_addressbook.css");
     
     // html for dialog window
-    $table = new html_table(array('id' => 'compose_addressbook_table', 'class' => 'records-table', 'cols' => 1, 'cellspacing' => 0));
+    $table = new html_table(array('id' => 'compose_addressbook_table', 'class' => 'records-table', 'cols' => 2, 'cellspacing' => 0));
      
     // create div for dialog window
     $rcmail->output->add_footer(html::div(array('id' => "compose_addressbook_dialog", 'title' => Q($this->gettext('compose_addressbook_title'))),
@@ -90,8 +90,8 @@
         $result = $abook->list_records();
         while ($sql_arr = $result->iterate()) {
           foreach ((array)$abook->get_col_values('email', $sql_arr, true) as $email) {
-            $contact = format_email_recipient($email, $sql_arr['name']);
-            $contacts[] = array('name' => $sql_arr['name'] , 'email' => format_email_recipient($email, $sql_arr['name']));
+            $contact = format_email_recipient($email, $sql_arr['name'], $sql_arr['nickname']);
+            $contacts[] = array('name' => $sql_arr['name'] , 'email' => format_email_recipient($email, $sql_arr['name']), 'nickname' => $sql_arr['nickname']);
           }
         }
         $search = null;
@@ -109,11 +109,11 @@
         $search=trim(get_input_value('_search', RCUBE_INPUT_POST));
         
         if(!empty($search)) {
-          $result = $abook->search(array('name','email'),$search, false, true, true, 'email');
+          $result = $abook->search(array('name','email','nickname'),$search, false, true, true, 'email');
           while ($sql_arr = $result->iterate()) {
             foreach ((array)$abook->get_col_values('email', $sql_arr, true) as $email) {
-              $contact = format_email_recipient($email, $sql_arr['name']);
-              $contacts[] = array('name' => $sql_arr['name'] , 'email' => format_email_recipient($email, $sql_arr['name']));
+              $contact = format_email_recipient($email, $sql_arr['name'], $sql_arr['nickname']);
+              $contacts[] = array('name' => $sql_arr['name'] , 'email' => format_email_recipient($email, $sql_arr['name']), 'nickname' => $sql_arr['nickname']);
             }
           }
           if($abook->groups) {
@@ -161,7 +161,7 @@
       foreach($groups as $group) {
         $abook->set_group($group);
         $abook->set_pagesize(1000);
-        $result = $abook->list_records(array('email','name'));
+        $result = $abook->list_records(array('email','name','nickname'));
         while ($result && ($sql_arr = $result->iterate())) {
           $email = (array)$sql_arr['email'];
           $members[] = format_email_recipient($email[0], $sql_arr['name']);
