diff --git a/src/Text/Pandoc/Readers/Org/BlockStarts.hs b/src/Text/Pandoc/Readers/Org/BlockStarts.hs
index d1e13eb70..58db4f46c 100644
--- a/src/Text/Pandoc/Readers/Org/BlockStarts.hs
+++ b/src/Text/Pandoc/Readers/Org/BlockStarts.hs
@@ -92,7 +92,9 @@ metaLineStart :: Monad m => OrgParser m ()
 metaLineStart = try $ skipSpaces <* string "#+"
 
 commentLineStart :: Monad m => OrgParser m ()
-commentLineStart = try $ skipSpaces <* string "# "
+commentLineStart = try $
+  -- the first char after '#' must be a plain space character or a newline
+  skipSpaces <* string "#" <* lookAhead (oneOf " \n")
 
 exampleLineStart :: Monad m => OrgParser m ()
 exampleLineStart = () <$ try (skipSpaces *> string ": ")
diff --git a/test/Tests/Readers/Org/Block.hs b/test/Tests/Readers/Org/Block.hs
index f5ea66343..35fd4c1fa 100644
--- a/test/Tests/Readers/Org/Block.hs
+++ b/test/Tests/Readers/Org/Block.hs
@@ -73,13 +73,23 @@ tests =
       "----- em and en dash" =?>
       para "\8212\8211 em and en dash"
 
-  , "Comment Block" =:
+  , testGroup "Comments"
+    [ "Comment Block" =:
       T.unlines [ "#+BEGIN_COMMENT"
                 , "stuff"
                 , "bla"
                 , "#+END_COMMENT"] =?>
       (mempty::Blocks)
 
+    , "Comment line" =:
+      T.unlines [ "# this is a comment" ] =?>
+      (mempty :: Blocks)
+
+    , "Empty comment line" =:
+      T.unlines [ "  #" ] =?>
+      (mempty :: Blocks)
+    ]
+
   , testGroup "Blocks and fragments"
     [ "HTML block" =:
       T.unlines [ "#+BEGIN_HTML"