diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -43,7 +43,7 @@
     segment                  prints the decoded scripts for a specific OID
     explain                  print a hexdump of a GME file with descriptions
     holes                    lists all unknown parts of the file.
-    rewrite                  parses the file and reads it again (for debugging)
+    rewrite                  parses the file and writes it again (for debugging)
 
     GME extraction commands:
     media                    dumps all audio samples
@@ -174,7 +174,9 @@
 ----------------------------------
 
  * [`oid-decoder.html`](http://htmlpreview.github.io/?https://github.com/entropia/tip-toi-reveng/blob/master/oid-decoder.html) allows you to manually decode an OID image.
- * `scripts/updates.sh` downloads all gme files from the Ravensburger server.
+ * `scripts/update.sh` downloads all gme files from the Ravensburger server (requires perl and the [XML::Simple](http://search.cpan.org/~grantm/XML-Simple/) module).  
+
+   Instead of downloading all of them, you can conveniently browse them at <http://tiptoi.vakat.de/>, a service provided by Falko Oldenburg <tiptoi@vakat.de>.
  * `gameanalyse.c` and `libtiptoi.c` is an alternative tool to investigate gme
    files. It can also [replace audio files in gme files](Audio/README.md);
    compile and run it for diagnostic output.
diff --git a/src/Commands.hs b/src/Commands.hs
--- a/src/Commands.hs
+++ b/src/Commands.hs
@@ -118,7 +118,7 @@
         (length ttBinaries3)
         (length ttBinaries4)
     for_ ttSpecialOIDs $ \(oid1, oid2) ->
-        printf "Speical OIDs: %d, %d\n" oid1 oid2
+        printf "Special OIDs: %d, %d\n" oid1 oid2
     printf "Checksum found 0x%08X, calculated 0x%08X\n" ttChecksum ttChecksumCalc
 
 lint :: FilePath -> IO ()
diff --git a/src/tttool.hs b/src/tttool.hs
--- a/src/tttool.hs
+++ b/src/tttool.hs
@@ -5,6 +5,7 @@
 import Data.List (intercalate)
 import Options.Applicative.Help.Chunk
 import Data.Monoid
+import Data.Foldable (asum)
 
 import Types
 import RangeParser
@@ -75,38 +76,45 @@
                 _        -> Left $ "Cannot parse dimensions " ++ input
             _        -> Left $ "Cannot parse dimensions " ++ input
 
-    cmd = hsubparser $ mconcat
-        [ cmdSep "GME creation commands:"
-        , assembleCmd
-        , cmdSep ""
-
-        , cmdSep "OID code creation commands:"
-        , oidTableCmd
-        , oidCodesCmd
-        , oidCodeCmd
-        , cmdSep ""
-
-        , cmdSep "GME analysis commands:"
-        , infoCmd
-        , exportCmd
-        , scriptsCmd
-        , scriptCmd
-        , gamesCmd
-        , lintCmd
-        , segmentsCmd
-        , segmentCmd
-        , explainCmd
-        , holesCmd
-        , rewriteCmd
-        , cmdSep ""
-
-        , cmdSep "GME extraction commands:"
-        , mediaCmd
-        , binariesCmd
-        , cmdSep ""
-
-        , cmdSep "Simulation commands:"
-        , playCmd
+    cmd :: Parser (Conf -> IO ())
+    cmd = asum
+        [ hsubparser $ mconcat
+          [ commandGroup "GME creation commands:"
+          , assembleCmd
+          , hidden
+          ]
+        , hsubparser $ mconcat
+          [ commandGroup "OID code creation commands:"
+          , oidTableCmd
+          , oidCodesCmd
+          , oidCodeCmd
+          , hidden
+          ]
+        , hsubparser $ mconcat
+          [ commandGroup "GME analysis commands:"
+          , infoCmd
+          , exportCmd
+          , scriptsCmd
+          , scriptCmd
+          , gamesCmd
+          , lintCmd
+          , segmentsCmd
+          , segmentCmd
+          , explainCmd
+          , holesCmd
+          , rewriteCmd
+          , hidden
+          ]
+        , hsubparser $ mconcat
+          [ commandGroup "GME extraction commands:"
+          , mediaCmd
+          , binariesCmd
+          , hidden
+          ]
+        , hsubparser $ mconcat
+          [ commandGroup "Simulation commands:"
+          , playCmd
+          ]
         ]
 
 only :: (Eq a, Show a) => [a] -> ReadM a -> ReadM a
@@ -289,7 +297,7 @@
 rewriteCmd =
     command "rewrite" $
     info parser $
-    progDesc "parses the file and reads it again (for debugging)"
+    progDesc "parses the file and writes it again (for debugging)"
   where
     parser = const <$> (rewrite <$> gmeFileParser <*> outFileParser)
 
diff --git a/tttool.cabal b/tttool.cabal
--- a/tttool.cabal
+++ b/tttool.cabal
@@ -1,5 +1,5 @@
 name:                tttool
-version:             1.6.1.2
+version:             1.6.1.3
 synopsis:            Working with files for the Tiptoi® pen
 description:         The Ravensburger Tiptoi® pen is programmed via special
                      files. Their file format has been reverse engineered; this
@@ -71,7 +71,7 @@
     yaml        == 0.8.*,
     HPDF        >= 1.4.10   && < 1.5,
     split       == 0.2.*,
-    optparse-applicative == 0.12.*,
+    optparse-applicative == 0.13.*,
     spool       == 0.1.*,
     zlib        >= 0.5      && < 0.7,
     natural-sort >= 0.1     && < 0.2
