diff --git a/MANUAL.txt b/MANUAL.txt
index b52e900c3..42b836f0a 100644
--- a/MANUAL.txt
+++ b/MANUAL.txt
@@ -3080,10 +3080,12 @@ starts with a fence containing at least three consecutive
 colons plus some attributes. The attributes may optionally
 be followed by another string of consecutive colons.
 The attribute syntax is exactly as in fenced code blocks (see
-[Extension-fenced_code_attributes], above).  The Div ends with
-another line containing a string of at least three consecutive
-colons.  The fenced Div should be separated by blank lines from
-preceding and following blocks.
+[Extension-fenced_code_attributes], above).  As with fenced
+code blocks, one can use either attributes in curly braces
+or a single unbraced word, which will be treated as a class
+name.  The Div ends with another line containing a string of at
+least three consecutive colons.  The fenced Div should be
+separated by blank lines from preceding and following blocks.
 
 Example:
 
@@ -3096,13 +3098,13 @@ Example:
 Fenced divs can be nested.  Opening fences are distinguished
 because they *must* have attributes:
 
-    ::: Warning
+    ::: Warning ::::::
     This is a warning.
 
     ::: Danger
     This is a warning within a warning.
     :::
-    :::
+    ::::::::::::::::::
 
 #### Extension: `raw_tex` ####
 
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 221c834e8..a27e05fed 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -1027,6 +1027,11 @@ para = try $ do
                           Just "div" -> () <$
                                        lookAhead (htmlTag (~== TagClose "div"))
                           _          -> mzero
+              <|> do guardEnabled Ext_fenced_divs
+                     divLevel <- stateFencedDivLevel <$> getState
+                     if divLevel > 0
+                        then lookAhead divFenceEnd
+                        else mzero
             return $ do
               result' <- result
               case B.toList result' of
@@ -1689,7 +1694,7 @@ endline = try $ do
      notFollowedBy (() <$ (lookAhead (char '`') >> codeBlockFenced))
   guardDisabled Ext_fenced_divs <|>
     do divLevel <- stateFencedDivLevel <$> getState
-       guard (divLevel < 1) <|> notFollowedBy fenceEnd
+       guard (divLevel < 1) <|> notFollowedBy divFenceEnd
   notFollowedByHtmlCloser
   (eof >> return mempty)
     <|> (guardEnabled Ext_hard_line_breaks >> return (return B.linebreak))
@@ -1946,12 +1951,12 @@ divFenced = try $ do
   skipMany (char ':')
   blankline
   updateState $ \st -> st{ stateFencedDivLevel = stateFencedDivLevel st + 1 }
-  bs <- mconcat <$> manyTill block fenceEnd
+  bs <- mconcat <$> manyTill block divFenceEnd
   updateState $ \st -> st{ stateFencedDivLevel = stateFencedDivLevel st - 1 }
   return $ B.divWith attribs <$> bs
 
-fenceEnd :: PandocMonad m => MarkdownParser m ()
-fenceEnd = try $ do
+divFenceEnd :: PandocMonad m => MarkdownParser m ()
+divFenceEnd = try $ do
   nonindentSpaces
   string ":::"
   skipMany (char ':')
diff --git a/test/command/168.md b/test/command/168.md
index 0d6183a78..43c3b865a 100644
--- a/test/command/168.md
+++ b/test/command/168.md
@@ -17,7 +17,7 @@ nested div
   [[Plain [Str "list"]]
   ,[Plain [Str "another"]]]
  ,Div ("myid",["class"],[("key","val")])
-  [Plain [Str "nested",Space,Str "div"]]]]
+  [Para [Str "nested",Space,Str "div"]]]]
 ```
 
 ```
@@ -28,3 +28,16 @@ bar
 ^D
 [Para [Str "foo",SoftBreak,Str ":::",SoftBreak,Str "bar"]]
 ```
+
+```
+% pandoc -t native
+::::: Warning
+Here is a paragraph.
+
+And another.
+:::::
+^D
+[Div ("",["Warning"],[])
+ [Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "paragraph."]
+ ,Para [Str "And",Space,Str "another."]]]
+```