diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,11 @@
 # Changelog for commonmark-extensions
 
+## 0.2.7.1
+
+  * Task list extension: andle empty task list items correctly (#174,
+    Chirag Dhamange). Prevent subsequent sibling task list items
+    from being parsed as nested children.
+
 ## 0.2.7
 
   * Math extension: bail out on pathological nestings.
diff --git a/commonmark-extensions.cabal b/commonmark-extensions.cabal
--- a/commonmark-extensions.cabal
+++ b/commonmark-extensions.cabal
@@ -1,5 +1,5 @@
 name:           commonmark-extensions
-version:        0.2.7
+version:        0.2.7.1
 synopsis:       Pure Haskell commonmark parser.
 description:
    This library provides some useful extensions to core commonmark
diff --git a/src/Commonmark/Extensions/TaskList.hs b/src/Commonmark/Extensions/TaskList.hs
--- a/src/Commonmark/Extensions/TaskList.hs
+++ b/src/Commonmark/Extensions/TaskList.hs
@@ -133,7 +133,8 @@
                                listItemType lidata
                     -> addNodeToStack linode
                   _ -> addNodeToStack listnode >> addNodeToStack linode
-             blankAfterMarker <- optionMaybe blankLine
+             blankAfterMarker <- optionMaybe $
+               try (blankLine <* lookAhead blankLine) <|> lookAhead blankLine
              pos' <- getPosition
              case blankAfterMarker of
                   Just _ -> return ()
@@ -153,10 +154,11 @@
                              (ListItemData (BulletList '*') False 0
                               False False)
              -- a marker followed by two blanks is just an empty item:
-             guard $ null (blockBlanks ndata) ||
-                     not (null children)
              pos <- getPosition
-             gobbleSpaces (listItemIndent lidata) <|> 0 <$ lookAhead blankLine
+             case blockBlanks ndata of
+                  _:_ | null children -> lookAhead blankLine
+                  _ -> () <$ gobbleSpaces (listItemIndent lidata)
+                       <|> lookAhead blankLine
              return $! (pos, node)
      , blockConstructor    = fmap mconcat . renderChildren
      , blockFinalize       = \(Node cdata children) parent -> do
diff --git a/test/task_lists.md b/test/task_lists.md
--- a/test/task_lists.md
+++ b/test/task_lists.md
@@ -91,3 +91,13 @@
 </li>
 </ul>
 ````````````````````````````````
+
+```````````````````````````````` example
+- [ ]
+- [ ] b
+.
+<ul class="task-list">
+<li><input type="checkbox" disabled="" /></li>
+<li><input type="checkbox" disabled="" />b</li>
+</ul>
+````````````````````````````````
