diff --git a/src/main/scala/leon/LeonOption.scala b/src/main/scala/leon/LeonOption.scala
index e8b653a5b172615e7c188c4f2d5c82f66c2bc673..06269e69609432a2441b71c51a904129a698052f 100644
--- a/src/main/scala/leon/LeonOption.scala
+++ b/src/main/scala/leon/LeonOption.scala
@@ -101,7 +101,7 @@ object OptionsHelpers {
   def nameValue(s: String) = s match {
     case matcher(name, value) => (name, value)
     case matcherWithout(name) => (name, "")
-    case _ => sys.error("") // FIXME
+    case _ => throw new IllegalArgumentException
   }
 
   // helper for options that include patterns
diff --git a/src/main/scala/leon/Main.scala b/src/main/scala/leon/Main.scala
index 5035e0e36d68058cb32ff31a3a2a8d9e08ebc588..7c8098efb987948cf84e8ab11604f38e1b3eec97 100644
--- a/src/main/scala/leon/Main.scala
+++ b/src/main/scala/leon/Main.scala
@@ -95,7 +95,14 @@ object Main {
     val files = args.filterNot(_.startsWith("-")).map(new java.io.File(_))
 
     val leonOptions: Set[LeonOption[Any]] = options.map { opt =>
-      val (name, value) = OptionsHelpers.nameValue(opt)
+      val (name, value) = try {
+        OptionsHelpers.nameValue(opt)
+      } catch {
+        case _ : IllegalArgumentException =>
+          initReporter.fatalError(
+            s"Malformed option $opt. Options should have the form --name or --name=value"
+          )
+      }
       // Find respective LeonOptionDef, or report an unknown option
       val df = allOptions.find(_. name == name).getOrElse{
         initReporter.error(s"Unknown option: $name")