diff --git a/htools/hail.hs b/htools/hail.hs
index 646cdcf26db60ed2bfdc0b1486c6492e618c89eb..a497b4642a3df9ed4f8ac07bbd281f6db80ef37f 100644
--- a/htools/hail.hs
+++ b/htools/hail.hs
@@ -46,6 +46,7 @@ options =
     [ oPrintNodes
     , oDataFile
     , oNodeSim
+    , oVerbose
     , oShowVer
     , oShowHelp
     ]
@@ -103,11 +104,18 @@ main = do
   (opts, args) <- parseOpts cmd_args "hail" options
 
   let shownodes = optShowNodes opts
+      verbose = optVerbose opts
 
   request <- readRequest opts args
 
   let Request rq cdata = request
 
+  when (verbose > 1) $
+       hPutStrLn stderr $ "Received request: " ++ show rq
+
+  when (verbose > 2) $
+       hPutStrLn stderr $ "Received cluster data: " ++ show cdata
+
   when (isJust shownodes) $ do
          hPutStrLn stderr "Initial cluster status:"
          hPutStrLn stderr $ Cluster.printNodes (cdNodes cdata)
diff --git a/man/hail.rst b/man/hail.rst
index c4f7fb75c45c70054e2defac3fbe13f7490f2287..33b2787e1bfae1a68d10d5fdb7445f7a3b188687 100644
--- a/man/hail.rst
+++ b/man/hail.rst
@@ -9,7 +9,7 @@ hail - Ganeti IAllocator plugin
 SYNOPSIS
 --------
 
-**hail** [ **-t** *datafile* | **--simulate** *spec* ] *input-file*
+**hail** [ **-t** *file* | **--simulate** *spec* ] [options...] *input-file*
 
 **hail** --version
 
@@ -68,6 +68,12 @@ The options that can be passed to the program are as follows:
   data with a simulated cluster. For details about the description,
   see the man page **hspace**(1).
 
+-v
+  This option increases verbosity and can be used for debugging in order
+  to understand how the IAllocator request is parsed; it can be passed
+  multiple times for successively more information.
+
+
 CONFIGURATION
 -------------