diff --git a/CHANGELOG.md b/CHANGELOG.md
index 258fb62..5b51135 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
 ## 2.2.1
 
 * Update min Dart SDK to `2.4.0`.
+* Fixed span for null nodes in block lists.
 
 ## 2.2.0
 
diff --git a/lib/src/parser.dart b/lib/src/parser.dart
index 3eba773..4c8aaaf 100644
--- a/lib/src/parser.dart
+++ b/lib/src/parser.dart
@@ -348,12 +348,13 @@
     var token = _scanner.peek();
 
     if (token.type == TokenType.blockEntry) {
+      var start = token.span.start;
       token = _scanner.advance();
 
       if (token.type == TokenType.blockEntry ||
           token.type == TokenType.blockEnd) {
         _state = _State.BLOCK_SEQUENCE_ENTRY;
-        return _processEmptyScalar(token.span.end);
+        return _processEmptyScalar(start);
       } else {
         _states.add(_State.BLOCK_SEQUENCE_ENTRY);
         return _parseNode(block: true);
diff --git a/pubspec.yaml b/pubspec.yaml
index c0bfd99..0641a2d 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: yaml
-version: 2.2.1-dev
+version: 2.2.1
 
 description: A parser for YAML, a human-friendly data serialization standard
 homepage: https://github.com/dart-lang/yaml
diff --git a/test/span_test.dart b/test/span_test.dart
index 7ef61d3..4017868 100644
--- a/test/span_test.dart
+++ b/test/span_test.dart
@@ -86,4 +86,85 @@
       );
     });
   });
+
+  group('block', () {
+    YamlList list, nestedList;
+
+    setUpAll(() {
+      const yamlStr = '''
+- foo
+- 
+  - one
+  - 
+  - three
+  - 
+  - five
+  -
+- 
+  a : b
+  c : d
+- bar
+''';
+
+      list = loadYaml(yamlStr) as YamlList;
+      nestedList = list.nodes[1] as YamlList;
+    });
+
+    test('root nodes span', () {
+      _expectSpan(list.nodes[0].span, r'''
+line 1, column 3: message
+  ╷
+1 │ - foo
+  │   ^^^
+  ╵''');
+
+      _expectSpan(list.nodes[1].span, r'''
+line 3, column 3: message
+  ╷
+3 │ ┌   - one
+4 │ │   - 
+5 │ │   - three
+6 │ │   - 
+7 │ │   - five
+8 │ └   -
+  ╵''');
+
+      _expectSpan(list.nodes[2].span, r'''
+line 10, column 3: message
+   ╷
+10 │ ┌   a : b
+11 │ └   c : d
+   ╵''');
+
+      _expectSpan(list.nodes[3].span, r'''
+line 12, column 3: message
+   ╷
+12 │ - bar
+   │   ^^^
+   ╵''');
+    });
+
+    test('null nodes span', () {
+      _expectSpan(nestedList.nodes[1].span, r'''
+line 4, column 3: message
+  ╷
+4 │   - 
+  │   ^
+  ╵''');
+
+      _expectSpan(nestedList.nodes[3].span, r'''
+line 6, column 3: message
+  ╷
+6 │   - 
+  │   ^
+  ╵''');
+
+      _expectSpan(nestedList.nodes[5].span, r'''
+line 8, column 3: message
+  ╷
+8 │   -
+  │   ^
+  ╵''');
+    });
+  });
 }
