diff --git a/src/CommandLine/Core/Tokenizer.cs b/src/CommandLine/Core/Tokenizer.cs
index fe94fc61..1024613d 100644
--- a/src/CommandLine/Core/Tokenizer.cs
+++ b/src/CommandLine/Core/Tokenizer.cs
@@ -28,7 +28,7 @@ public static Result<IEnumerable<Token>, Error> Tokenize(
             Action<Error> onError = errors.Add;
 
             var tokens = (from arg in arguments
-                          from token in !arg.StartsWith("-", StringComparison.Ordinal)
+                          from token in (!arg.StartsWith("-", StringComparison.Ordinal) || (arg.Contains(" ") && !arg.Contains("=")))
                                ? new[] { Token.Value(arg) }
                                : arg.StartsWith("--", StringComparison.Ordinal)
                                      ? TokenizeLongName(arg, onError)
diff --git a/tests/CommandLine.Tests/Unit/ParserTests.cs b/tests/CommandLine.Tests/Unit/ParserTests.cs
index b079ce0f..8b30fd5a 100644
--- a/tests/CommandLine.Tests/Unit/ParserTests.cs
+++ b/tests/CommandLine.Tests/Unit/ParserTests.cs
@@ -163,6 +163,27 @@ public void Parse_options_with_double_dash()
             // Teardown
         }
 
+        [Fact]
+        public void Parse_options_with_whitespace_and_double_dash()
+        {
+            // Fixture setup
+            var expectedOptions = new Simple_Options
+            {
+                StringValue = "--astring value",
+                IntSequence = Enumerable.Empty<int>(),
+            };
+            var sut = new Parser();
+
+            // Exercize system
+            var result =
+                sut.ParseArguments<Simple_Options>(
+                    new[] { "--stringvalue", "--astring value" });
+
+            // Verify outcome
+            ((Parsed<Simple_Options>)result).Value.Should().BeEquivalentTo(expectedOptions);
+            // Teardown
+        }
+
         [Fact]
         public void Parse_options_with_repeated_value_in_values_sequence_and_option()
         {