diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Revision history for glirc2
 
+## 2.26
+* Updates for GHC 8.4.1
+* Added `/toggle-show-ping` and `show-ping` configuration setting
+  to toggle visibility of the ping roundtrip times.
+
 ## 2.25
 * `/ignore` can list ignores and supports full wildcard masks
 * Updated C extension API
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -283,6 +283,12 @@
 * `/exec [-n network] [-c channel] <command> <arguments...>` - Execute a command, If no network or channel are provided send output to client window, if network and channel are provided send output as messages, if network is provided send output as raw IRC messages.
 * `/url [n]` - Execute url-opener on the nth URL in the current window (defaults to first)
 
+View toggles
+* `/toggle-detail` - toggle full detail view of messages
+* `/toggle-activity-bar` - toggle channel names in activity bar
+* `/toggle-metadata` - toggle visibility of channel metadata
+* `/toggle-layout` - toggle split-screen layout between 1 and 2 column view
+
 Connection commands
 
 * `/nick <nick>` - Change nickname
@@ -294,7 +300,8 @@
 * `/focus <server>` - Change focus to server window
 * `/focus <server> <channel>` - Change focus to channel window
 * `/clear [network] [channel]` - Clear contents of current or specified window
-* `/ignore <nick>` - Toggle ignore of a user
+* `/ignore` - Show all ignore masks
+* `/ignore <mask>...` - Toggle ignore status on a list of masks
 * `/channel <channel>` - Change focus to channel on current network (alias: `/c`)
 * `/splits [focuses...]` - Enable split-screen view. Focuses should be space delimited list of NETWORK:CHANNEL
 * `/splits+ [focuses...]` - Incremental addition to splits
@@ -307,6 +314,7 @@
 
 Chat commands
 
+* `/query <target> [<msg>]` - Switch focus to target window on current server, optionally send message
 * `/msg <target> <msg>` - Send a message on the current server to target
 * `/notice <target> <msg>` - Send a notice message on the current server to target
 * `/ctcp <target> <command> <args>` - Send a ctcp command on the current server to target
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -35,7 +35,11 @@
 import           Distribution.Simple.BuildPaths (autogenModulesDir)
 #endif
 
+#if MIN_VERSION_Cabal(2,2,0)
+import qualified Distribution.SPDX               as SPDX
+#endif
 
+
 -- | Default Setup main extended to generate a Build module and to validate
 -- the licenses of transitive dependencies.
 main :: IO ()
@@ -148,15 +152,27 @@
   [InstalledPackageInfo] {- ^ transitive package dependencies -} ->
   IO ()
 validateLicenses pkgs =
-  do let p pkg   = license pkg `notElem` freeLicenses
+  do let p pkg   = toLicense (license pkg) `notElem` freeLicenses
          badPkgs = filter p pkgs
 
      unless (null badPkgs) $
-       do mapM_ print badPkgs
+       do mapM_ print [ toLicense (license p) | p <- badPkgs ]
           fail "BAD LICENSE"
 
+class ToLicense a where toLicense :: a -> License
+instance ToLicense License where toLicense = id
 
+#if MIN_VERSION_Cabal(2,2,0)
+instance (ToLicense a, ToLicense b) => ToLicense (Either a b) where
+  toLicense (Right x) = toLicense x
+  toLicense (Left  x) = toLicense x
+instance ToLicense SPDX.License where
+  toLicense = licenseFromSPDX
+#endif
+
+
+
 -- | The set of permissive licenses that are acceptable for transitive dependencies
 -- of this package: BSD2, BSD3, ISC, MIT, PublicDomain
 freeLicenses :: [License]
-freeLicenses = [BSD2, BSD3, ISC, MIT, PublicDomain]
+freeLicenses = [BSD2, BSD3, ISC, MIT, PublicDomain, UnknownLicense "LicenseRefPublicDomain"]
diff --git a/glirc.cabal b/glirc.cabal
--- a/glirc.cabal
+++ b/glirc.cabal
@@ -1,5 +1,5 @@
 name:                glirc
-version:             2.25
+version:             2.26
 synopsis:            Console IRC client
 description:         Console IRC client
                      .
@@ -23,9 +23,9 @@
 tested-with:         GHC==8.0.2
 
 custom-setup
-  setup-depends: base     >=4.9  && <4.11,
+  setup-depends: base     >=4.9  && <4.12,
                  filepath >=1.4  && <1.5,
-                 Cabal    >=1.24 && <2.1
+                 Cabal    >=1.24 && <2.3
 
 source-repository head
   type: git
@@ -124,9 +124,9 @@
                        Paths_glirc
                        Build_glirc
 
-  build-depends:       base                 >=4.9    && <4.11,
+  build-depends:       base                 >=4.9    && <4.12,
                        HsOpenSSL            >=0.11   && <0.12,
-                       async                >=2.1    && <2.2,
+                       async                >=2.1    && <2.3,
                        attoparsec           >=0.13   && <0.14,
                        base64-bytestring    >=1.0.0.1&& <1.1,
                        bytestring           >=0.10.8 && <0.11,
@@ -149,14 +149,14 @@
                        socks                >=0.5.5  && <0.6,
                        split                >=0.2    && <0.3,
                        stm                  >=2.4    && <2.5,
-                       template-haskell     >=2.11   && <2.13,
+                       template-haskell     >=2.11   && <2.14,
                        text                 >=1.2.2  && <1.3,
                        time                 >=1.6    && <1.10,
                        transformers         >=0.5.2  && <0.6,
                        unix                 >=2.7    && <2.8,
                        unordered-containers >=0.2.7  && <0.3,
                        vector               >=0.11   && <0.13,
-                       vty                  >=5.11.1 && <5.20
+                       vty                  >=5.11.1 && <5.22
 
 test-suite test
   type:                exitcode-stdio-1.0
diff --git a/src/Client/Commands.hs b/src/Client/Commands.hs
--- a/src/Client/Commands.hs
+++ b/src/Client/Commands.hs
@@ -420,6 +420,12 @@
     $ ClientCommand cmdToggleActivityBar noClientTab
 
   , Command
+      (pure "toggle-show-ping")
+      (pure ())
+      "Toggle visibility of ping round-trip time.\n"
+    $ ClientCommand cmdToggleShowPing noClientTab
+
+  , Command
       (pure "toggle-metadata")
       (pure ())
       "Toggle visibility of metadata in chat windows.\n"
@@ -1165,6 +1171,9 @@
 
 cmdToggleActivityBar :: ClientCommand ()
 cmdToggleActivityBar st _ = commandSuccess (over clientActivityBar not st)
+
+cmdToggleShowPing :: ClientCommand ()
+cmdToggleShowPing st _ = commandSuccess (over clientShowPing not st)
 
 cmdToggleMetadata :: ClientCommand ()
 cmdToggleMetadata st _ = commandSuccess (clientToggleHideMeta st)
diff --git a/src/Client/Configuration.hs b/src/Client/Configuration.hs
--- a/src/Client/Configuration.hs
+++ b/src/Client/Configuration.hs
@@ -38,6 +38,7 @@
   , configHideMeta
   , configKeyMap
   , configLayout
+  , configShowPing
   , configJumpModifier
 
   -- * Loading configuration
@@ -99,6 +100,7 @@
   , _configHideMeta        :: Bool -- ^ default setting for hidemeta on new windows
   , _configKeyMap          :: KeyMap -- ^ keyboard bindings
   , _configLayout          :: LayoutMode -- ^ Default layout on startup
+  , _configShowPing        :: Bool -- ^ visibility of ping time
   , _configJumpModifier    :: [Modifier] -- ^ Modifier used for jumping windows
   }
   deriving Show
@@ -286,6 +288,8 @@
                                "Extra key bindings"
      _configLayout          <- sec' OneColumn "layout" layoutSpec
                                "Initial setting for window layout"
+     _configShowPing        <- sec' True "show-ping" yesOrNoSpec
+                               "Initial setting for visibility of ping times"
      return (\def ->
              let _configDefaults = ssDefUpdate def
                  _configServers  = buildServerMap _configDefaults ssUpdates
diff --git a/src/Client/Image/StatusLine.hs b/src/Client/Image/StatusLine.hs
--- a/src/Client/Image/StatusLine.hs
+++ b/src/Client/Image/StatusLine.hs
@@ -56,8 +56,12 @@
       , nometaImage (view clientFocus st) st
       , scrollImage st
       , filterImage st
-      , latencyImage st
+      , latency
       ]
+
+    latency
+      | view clientShowPing st = latencyImage st
+      | otherwise              = mempty
 
     activity
       | view clientActivityBar st = activityBarImages st
diff --git a/src/Client/State.hs b/src/Client/State.hs
--- a/src/Client/State.hs
+++ b/src/Client/State.hs
@@ -30,6 +30,7 @@
   , clientScroll
   , clientDetailView
   , clientActivityBar
+  , clientShowPing
   , clientSubfocus
   , clientNetworkMap
   , clientIgnores
@@ -178,6 +179,7 @@
   , _clientScroll            :: !Int                      -- ^ buffer scroll lines
   , _clientDetailView        :: !Bool                     -- ^ use detailed rendering mode
   , _clientActivityBar       :: !Bool                     -- ^ visible activity bar
+  , _clientShowPing          :: !Bool                     -- ^ visible ping time
   , _clientRegex             :: Maybe Regex               -- ^ optional persistent filter
   , _clientLayout            :: !LayoutMode               -- ^ layout mode for split screen
 
@@ -268,6 +270,7 @@
         , _clientRegex             = Nothing
         , _clientLayout            = view configLayout cfg
         , _clientActivityBar       = view configActivityBar cfg
+        , _clientShowPing          = view configShowPing cfg
         , _clientBell              = False
         , _clientExtensions        = exts
         , _clientLogQueue          = []
diff --git a/src/Client/State/Network.hs b/src/Client/State/Network.hs
--- a/src/Client/State/Network.hs
+++ b/src/Client/State/Network.hs
@@ -129,10 +129,10 @@
 
 -- | State of the authentication transaction
 data AuthenticateState
-  = AS_None -- ^ no active transaction
-  | AS_PlainStarted -- ^ PLAIN mode initiated
-  | AS_EcdsaStarted -- ^ ECDSA-NIST mode initiated
-  | AS_EcdsaWaitChallenge -- ^ ECDSA_NIST user sent waiting for challenge
+  = AS_None               -- ^ no active transaction
+  | AS_PlainStarted       -- ^ PLAIN mode initiated
+  | AS_EcdsaStarted       -- ^ ECDSA-NIST mode initiated
+  | AS_EcdsaWaitChallenge -- ^ ECDSA-NIST user sent waiting for challenge
   deriving Show
 
 -- | Pair of username and hostname. Empty strings represent missing information.
