diff --git a/bt5/erp5_popup_ui/SkinTemplateItem/portal_skins/erp5_popup_ui/erp5_popup.js.xml b/bt5/erp5_popup_ui/SkinTemplateItem/portal_skins/erp5_popup_ui/erp5_popup.js.xml
index a9ed43c0aab9b18f1e86cda5e67384f70f9bbf52..d86eae9c2c607e1ccfd9b7518769cdbc0da40897 100644
--- a/bt5/erp5_popup_ui/SkinTemplateItem/portal_skins/erp5_popup_ui/erp5_popup.js.xml
+++ b/bt5/erp5_popup_ui/SkinTemplateItem/portal_skins/erp5_popup_ui/erp5_popup.js.xml
@@ -153,9 +153,9 @@ $(function() {\n
             load(form.attr(\'action\'), $.param(params) + \'&\' + form.serialize());\n
           });\n
 \n
-          // XXX Remove the hardcoded handler.\n
-          $(\'input[type="text"][name="listbox_page_start"][onkeypress]\', dialog).removeAttr(\'onkeypress\');\n
-          $(\'input[type="text"][name="listbox_page_start"]\', dialog).keypress(function(event) {\n
+          // listbox type in page number\n
+          $(\'input[name="listbox_page_start"][onkeypress]\', dialog).removeAttr(\'onkeypress\');\n
+          $(\'input[name="listbox_page_start"]\', dialog).keypress(function(event) {\n
             if (event.keyCode == \'13\') {\n
               event.preventDefault();\n
               var self = $(this);\n
@@ -165,7 +165,18 @@ $(function() {\n
               load(\'listbox_setPage\', form.serialize());\n
             }\n
           });\n
-\n
+          \n
+          // Listbox next & previous, last & first buttons\n
+          $.each(["listbox_nextPage", "listbox_previousPage", "listbox_firstPage", "listbox_lastPage"], \n
+                 function(index, value) {\n
+                   var button = $(\'button[type="submit"][name="\' + value + \':method"]\', dialog).first();\n
+                   button.click(function(event) {\n
+                                  var form = $(\'form.main_form\', dialog);\n
+                                  event.preventDefault();\n
+                                  load(value, form.serialize());            \n
+                   });\n
+          });\n
+         \n
           $(\'th.listbox-table-filter-cell input[type="text"]\', dialog).removeAttr(\'onkeypress\').keypress(function(event) {\n
             if (event.keyCode == \'13\') {\n
               event.preventDefault();\n
diff --git a/bt5/erp5_popup_ui/bt/revision b/bt5/erp5_popup_ui/bt/revision
index dec2bf5d6199c7cd0d84f3dc1e76a73ccc336302..2edeafb09db0093bae6ff060e2dcd2166f5c9387 100644
--- a/bt5/erp5_popup_ui/bt/revision
+++ b/bt5/erp5_popup_ui/bt/revision
@@ -1 +1 @@
-19
\ No newline at end of file
+20
\ No newline at end of file