diff --git a/mercurial/commands.py b/mercurial/commands.py
index a0cbbf78c31a75b6f21a77ff9cb688e7658984b6_bWVyY3VyaWFsL2NvbW1hbmRzLnB5..66721a0d224924874e61b0be36a7c728f363df3b_bWVyY3VyaWFsL2NvbW1hbmRzLnB5 100644
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -3331,7 +3331,7 @@
                          ('extensioncommands', _('Extension Commands'))):
             if matches[t]:
                 rst.append('%s:\n\n' % title)
-                rst.extend(minirst.maketable(matches[t], 1))
+                rst.extend(minirst.maketable(sorted(matches[t]), 1))
                 rst.append('\n')
     elif name and name != 'shortlist':
         i = None
diff --git a/tests/test-help.t b/tests/test-help.t
index a0cbbf78c31a75b6f21a77ff9cb688e7658984b6_dGVzdHMvdGVzdC1oZWxwLnQ=..66721a0d224924874e61b0be36a7c728f363df3b_dGVzdHMvdGVzdC1oZWxwLnQ= 100644
--- a/tests/test-help.t
+++ b/tests/test-help.t
@@ -790,5 +790,5 @@
   
   Commands:
   
-   update update working directory (or switch revisions)
+   clone  make a copy of an existing repository
    paths  show aliases for remote repositories
@@ -794,5 +794,5 @@
    paths  show aliases for remote repositories
-   clone  make a copy of an existing repository
+   update update working directory (or switch revisions)
   
   Extensions: