diff --git a/src/plugins/server/server_doc.ml b/src/plugins/server/server_doc.ml
index a1c14afd4fd0a02cc7ee8357fc5fcfb4d15cf24e..cac5ea51a263616362cca7ba302a08cebdad6646 100644
--- a/src/plugins/server/server_doc.ml
+++ b/src/plugins/server/server_doc.ml
@@ -80,6 +80,10 @@ let page chapter ~title ?(descr=[]) ?readme ~filename () =
       chapter ; title ; descr ; readme ;
       sections=[] ;
     } in
+    begin match chapter with
+      | `Kernel | `Protocol -> ()
+      | `Plugin p -> plugins := p :: !plugins
+    end ;
     pages := Pages.add path page !pages ; page
 
 let static () = []
@@ -239,7 +243,7 @@ let table_of_contents () =
   List.concat
     (List.map
        (fun p -> table_of_chapter (`Plugin p))
-       (List.sort String.compare !plugins))
+       (List.sort_uniq String.compare !plugins))
 
 module Cmap = Map.Make
     (struct