diff --git a/src/plugins/server/package.ml b/src/plugins/server/package.ml
index b8475e57b6063027cdc8877f666426e46c304e4d..202558bcb39195f5c5b7fe7c680cedb435237931 100644
--- a/src/plugins/server/package.ml
+++ b/src/plugins/server/package.ml
@@ -327,10 +327,7 @@ let resolve_readme ~plugin = function
         Printf.sprintf "%s/server/%s" Fc_config.datadir readme
       | Plugin name ->
         Printf.sprintf "%s/%s/server/%s" Fc_config.datadir name readme
-    in
-    if Sys.file_exists file
-    then Some file
-    else (Senv.warning "Can not find %S file" file ; None)
+    in Some file
 
 (* -------------------------------------------------------------------------- *)
 (* --- Declarations                                                       --- *)
diff --git a/src/plugins/server/server_doc.ml b/src/plugins/server/server_doc.ml
index f05d814853ef9bec78e5cf5929bcdddfd11b034e..058414a0cd0560c2d9088d753dad0505f1338d14 100644
--- a/src/plugins/server/server_doc.ml
+++ b/src/plugins/server/server_doc.ml
@@ -45,6 +45,7 @@ type page = {
   title : string ;
   order : int ;
   descr : Markdown.elements ;
+  readme: string option ;
   mutable sections : section list ;
 }
 
@@ -74,12 +75,9 @@ let page chapter ~title ?(descr=[]) ?readme ~filename () =
     Senv.failure "Duplicate page '%s' path@." path ; other
   with Not_found ->
     let order = incr order ; !order in
-    let descr = match readme with
-      | None -> Markdown.section ~title descr
-      | Some file -> Markdown.rawfile file @ descr in
     let page = {
       order ; rootdir ; path ;
-      chapter ; title ; descr ;
+      chapter ; title ; descr ; readme ;
       sections=[] ;
     } in
     pages := Pages.add path page !pages ; page
@@ -323,9 +321,17 @@ let dump ~root ?(meta=true) () =
     Pages.iter
       (fun path page ->
          Senv.feedback "[doc] Page: '%s'" path ;
-         let body = Markdown.subsections page.descr (build [] page.sections) in
          let title = page.title in
-         pp_one_page ~root ~page:path ~title body ;
+         let intro = match page.readme with
+           | None -> Markdown.section ~title page.descr
+           | Some file ->
+             if Sys.file_exists file
+             then Markdown.rawfile file @ page.descr
+             else (Senv.warning "Can not find %S file" file ;
+                   Markdown.section ~title page.descr)
+         in
+         let body = Markdown.subsections page.descr (build [] page.sections) in
+         pp_one_page ~root ~page:path ~title (intro @ body) ;
          if meta then
            let path = Printf.sprintf "%s/%s.json" root path in
            Yojson.Basic.to_file path (metadata page) ;