diff --git a/CHANGELOG.md b/CHANGELOG.md
index 85453d4..5ec92f6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+* Fixed a crashed caused by parsing `:host()` without an argument and added an
+  error message explaining that a selector argument is expected.
+
 ## 0.14.4+1
 
 * Set max SDK version to `<3.0.0`, and adjust other dependencies.
diff --git a/lib/parser.dart b/lib/parser.dart
index db2068c..d0b8aea 100644
--- a/lib/parser.dart
+++ b/lib/parser.dart
@@ -1379,12 +1379,15 @@
   /// supports Selector Level 4 grammar:
   /// https://drafts.csswg.org/selectors-4/#typedef-compound-selector
   Selector processCompoundSelector() {
-    return processSelector()
-      ..simpleSelectorSequences.forEach((sequence) {
+    var selector = processSelector();
+    if (selector != null) {
+      for (var sequence in selector.simpleSelectorSequences) {
         if (!sequence.isCombinatorNone) {
           _error('compound selector can not contain combinator', sequence.span);
         }
-      });
+      }
+    }
+    return selector;
   }
 
   simpleSelectorSequence(bool forceCombinatorNone) {
@@ -1625,6 +1628,10 @@
       } else if (!pseudoElement && (name == 'host' || name == 'host-context')) {
         _eat(TokenKind.LPAREN);
         var selector = processCompoundSelector();
+        if (selector == null) {
+          _errorExpected('a selector argument');
+          return null;
+        }
         _eat(TokenKind.RPAREN);
         var span = _makeSpan(start);
         return new PseudoClassFunctionSelector(pseudoName, selector, span);
diff --git a/test/selector_test.dart b/test/selector_test.dart
index 66e2080..b2feed4 100644
--- a/test/selector_test.dart
+++ b/test/selector_test.dart
@@ -82,6 +82,13 @@
       'found a number\n'
       '.foobar .1a-story .xyzzy\n'
       '        ^^');
+
+  selector(':host()', errors: errors..clear());
+  expect(
+      errors.first.toString(),
+      'error on line 1, column 7: expected a selector argument, but found )\n'
+      ':host()\n'
+      '      ^');
 }
 
 main() {
