diff --git a/lexer.go b/lexer.go
index e7d5d24..3235753 100644
--- a/lexer.go
+++ b/lexer.go
@@ -234,6 +234,7 @@
 			return l.lexKey
 		}
 
+		return l.errorf("no value can start with %c", next)
 	}
 
 	l.emit(tokenEOF)
diff --git a/lexer_test.go b/lexer_test.go
index 382e05a..d6ddc07 100644
--- a/lexer_test.go
+++ b/lexer_test.go
@@ -692,3 +692,17 @@
 		token{Position{1, 7}, tokenEOF, ""},
 	})
 }
+
+func TestLexUnknownRvalue(t *testing.T) {
+	testFlow(t, `a = !b`, []token{
+		token{Position{1, 1}, tokenKey, "a"},
+		token{Position{1, 3}, tokenEqual, "="},
+		token{Position{1, 5}, tokenError, "no value can start with !"},
+	})
+
+	testFlow(t, `a = \b`, []token{
+		token{Position{1, 1}, tokenKey, "a"},
+		token{Position{1, 3}, tokenEqual, "="},
+		token{Position{1, 5}, tokenError, `no value can start with \`},
+	})
+}
diff --git a/parser_test.go b/parser_test.go
index 1ea5924..784cdb8 100644
--- a/parser_test.go
+++ b/parser_test.go
@@ -299,6 +299,18 @@
 	})
 }
 
+func TestParseUnknownRvalue(t *testing.T) {
+	_, err := Load("a = !bssss")
+	if err == nil {
+		t.Error("Expecting a parse error")
+	}
+
+	_, err = Load("a = /b")
+	if err == nil {
+		t.Error("Expecting a parse error")
+	}
+}
+
 func TestMissingValue(t *testing.T) {
 	_, err := Load("a = ")
 	if err.Error() != "(1, 5): expecting a value" {
