diff --git a/src/Text/Pandoc/Readers/RST.hs b/src/Text/Pandoc/Readers/RST.hs
index e5eccb116..dbbfe5191 100644
--- a/src/Text/Pandoc/Readers/RST.hs
+++ b/src/Text/Pandoc/Readers/RST.hs
@@ -335,6 +335,13 @@ indentedBlock = try $ do
   optional blanklines
   return $ unlines lns
 
+quotedBlock :: Parser [Char] st [Char]
+quotedBlock = try $ do
+    quote <- lookAhead $ oneOf "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
+    lns <- many1 $ lookAhead (char quote) >> anyLine
+    optional blanklines
+    return $ unlines lns
+
 codeBlockStart :: Parser [Char] st Char
 codeBlockStart = string "::" >> blankline >> blankline
 
@@ -342,7 +349,8 @@ codeBlock :: Parser [Char] st Blocks
 codeBlock = try $ codeBlockStart >> codeBlockBody
 
 codeBlockBody :: Parser [Char] st Blocks
-codeBlockBody = try $ B.codeBlock . stripTrailingNewlines <$> indentedBlock
+codeBlockBody = try $ B.codeBlock . stripTrailingNewlines <$>
+                (indentedBlock <|> quotedBlock)
 
 lhsCodeBlock :: RSTParser Blocks
 lhsCodeBlock = try $ do
diff --git a/tests/Tests/Readers/RST.hs b/tests/Tests/Readers/RST.hs
index a80dc32b7..4b0abdf72 100644
--- a/tests/Tests/Readers/RST.hs
+++ b/tests/Tests/Readers/RST.hs
@@ -67,5 +67,20 @@ tests = [ "line block with blank line" =:
                 link "http://foo.bar.baz" "" "http://foo.bar.baz" <> ". " <>
                 link "http://foo.bar/baz_(bam)" "" "http://foo.bar/baz_(bam)"
                 <> " (" <> link "http://foo.bar" "" "http://foo.bar" <> ")")
+        , "indented literal block" =: unlines
+          [ "::"
+          , ""
+          , "  block quotes"
+          , ""
+          , "  can go on for many lines"
+          , "but must stop here"]
+          =?> (doc $
+           codeBlock "block quotes\n\ncan go on for many lines" <>
+           para "but must stop here")
+        , "line block with 3 lines" =: "| a\n| b\n| c"
+          =?> para ("a" <> linebreak <>  "b" <> linebreak <> "c")
+          , "quoted literal block using >" =: "::\n\n> quoted\n> block\n\nOrdinary paragraph"
+            =?> codeBlock "> quoted\n> block" <> para "Ordinary paragraph"
+          , "quoted literal block using | (not  a line block)" =: "::\n\n| quoted\n| block\n\nOrdinary paragraph"
+            =?> codeBlock "| quoted\n| block" <> para "Ordinary paragraph"
         ]
-