diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.4.18.5
+
+* yesod-bin: Make it build with latest optparse-applicative [#1282](https://github.com/yesodweb/yesod/pull/1282)
+
 ## 1.4.18.4
 
 * Link yesod-bin with wxneeded on OpenBSD. [#1281](https://github.com/yesodweb/yesod/pull/1281)
diff --git a/Options.hs b/Options.hs
--- a/Options.hs
+++ b/Options.hs
@@ -66,12 +66,20 @@
 injectDefaultP :: M.Map [String] String -> [String] -> Parser a -> Parser a
 injectDefaultP _env _path n@(NilP{})   = n
 injectDefaultP env path p@(OptP o)
+#if MIN_VERSION_optparse_applicative(0,13,0)
+  | (Option (CmdReader _ cmds f) props) <- o  =
+#else
   | (Option (CmdReader cmds f) props) <- o  =
+#endif
      let cmdMap = M.fromList (map (\c -> (c, mkCmd c)) cmds)
          mkCmd cmd =
            let (Just parseri) = f cmd
            in  parseri { infoParser = injectDefaultP env (path ++ [normalizeName cmd]) (infoParser parseri) }
+#if MIN_VERSION_optparse_applicative(0,13,0)
+     in  OptP (Option (CmdReader Nothing cmds (`M.lookup` cmdMap)) props)
+#else
      in  OptP (Option (CmdReader cmds (`M.lookup` cmdMap)) props)
+#endif
   | (Option (OptReader names (CReader _ rdr) _) _) <- o =
      p <|> either (const empty)
                   pure
diff --git a/yesod-bin.cabal b/yesod-bin.cabal
--- a/yesod-bin.cabal
+++ b/yesod-bin.cabal
@@ -1,5 +1,5 @@
 name:            yesod-bin
-version:         1.4.18.4
+version:         1.4.18.5
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
