diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,14 @@
 
 `hslua-cli` uses [PVP Versioning](https://pvp.haskell.org).
 
+## hslua-cli-1.4.1
+
+Released 2023-03-18.
+
+-   Always start the REPL if the `-i` parameter is given on the
+    command line. This fixes a bug where the REPL would not start
+    if `-v`, `-e` or `-l` where given.
+
 ## hslua-cli-1.4.0.1
 
 Released 2023-03-17.
diff --git a/hslua-cli.cabal b/hslua-cli.cabal
--- a/hslua-cli.cabal
+++ b/hslua-cli.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                hslua-cli
-version:             1.4.0.1
+version:             1.4.1
 synopsis:            Command-line interface for Lua
 description:         Provides an embeddable command-line interface for Lua.
                      The interface is compatible with the standard Lua
diff --git a/src/HsLua/CLI.hs b/src/HsLua/CLI.hs
--- a/src/HsLua/CLI.hs
+++ b/src/HsLua/CLI.hs
@@ -189,9 +189,13 @@
           _      -> Lua.throwErrorAsException
     tty <- Lua.liftIO istty
     case optScript opts of
-      Just script | script /= "-" -> do
+      Just "-" ->  -- load from stdin
+        Lua.loadfile Nothing >>= handleScriptResult
+      Just script ->
         Lua.loadfile (Just script) >>= handleScriptResult
-      Nothing | optVersion opts || not (null (optExecute opts)) ->
+      _ | optInteractive opts -> do
+        startREPL
+      _ | optVersion opts || not (null (optExecute opts)) ->
         pure ()
       _ | tty -> do
         startREPL
