diff --git a/server/Main.hs b/server/Main.hs
index 4266519c7..531a0b0a0 100644
--- a/server/Main.hs
+++ b/server/Main.hs
@@ -1,15 +1,20 @@
 module Main where
 
 import PandocServer (app)
+import Text.Pandoc (pandocVersion)
+import Control.Monad (when)
 import qualified Network.Wai.Handler.CGI as CGI
 import qualified Network.Wai.Handler.Warp as Warp
 import Network.Wai.Middleware.Timeout (timeout)
 import System.Environment (getProgName)
 import Options.Applicative
+import System.Exit (exitWith, ExitCode(ExitSuccess))
+import Data.Text as T
 
 data Opts = Opts
   { optPort :: Warp.Port,
-    optTimeout :: Int }  -- in seconds
+    optTimeout :: Int, -- seconds
+    optVersion :: Bool }
 
 options :: Parser Opts
 options = Opts
@@ -23,6 +28,9 @@ options = Opts
          <> value 2
          <> metavar "SECONDS"
          <> help "Seconds timeout" )
+  <*> flag False True
+         ( long "version"
+         <> help "Print version" )
 
 main :: IO ()
 main = do
@@ -33,6 +41,10 @@ main = do
        <> header "pandoc-server - text conversion server" )
   opts <- execParser optspec
 
+  when (optVersion opts) $ do
+    putStrLn $ progname <> " " <> T.unpack pandocVersion
+    exitWith ExitSuccess
+
   let port = optPort opts
   let app' = timeout (optTimeout opts) app
   if progname == "pandoc-server.cgi"
diff --git a/server/pandoc-server.md b/server/pandoc-server.md
index 6d7961ee4..9d6624c29 100644
--- a/server/pandoc-server.md
+++ b/server/pandoc-server.md
@@ -24,7 +24,10 @@ program, rename it as `pandoc-server.cgi`.
 :    Timeout in seconds, after which a conversion is killed. Default: 2.
 
 `--help`
-:    Help
+:    Print this help.
+
+`--version`
+:    Print version.
 
 # API