diff --git a/src-literatetests/tests.blt b/src-literatetests/tests.blt
index a9e7714..089d007 100644
--- a/src-literatetests/tests.blt
+++ b/src-literatetests/tests.blt
@@ -500,6 +500,24 @@ func = do
   stmt x
 
 
+###############################################################################
+###############################################################################
+###############################################################################
+#group expression.lists
+###############################################################################
+###############################################################################
+###############################################################################
+
+#test monad-comprehension-case-of
+func =
+  foooooo
+    $ [ case
+          foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
+        of
+          _ -> True
+      ]
+
+
 ###############################################################################
 ###############################################################################
 ###############################################################################
@@ -786,6 +804,22 @@ func (MyLongFoo abc def) = 1
 func (Bar       a   d  ) = 2
 func _                   = 3
 
+#test listcomprehension-case-of
+parserCompactLocation =
+  [ try
+      $ [ ParseRelAbs (Text.Read.read digits) _ _
+        | digits <- many1 digit
+        , rel1 :: Maybe (Either Int (Ratio Int)) <- optionMaybe
+          [ case divPart of
+              Nothing -> Left $ Text.Read.read digits
+              Just ddigits ->
+                Right $ Text.Read.read digits % Text.Read.read ddigits
+          | digits  <- many1 digit
+          , divPart <- optionMaybe (string "/" *> many1 digit)
+          ]
+        ]
+  ]
+
 
 ###############################################################################
 ###############################################################################
diff --git a/src/Language/Haskell/Brittany/Layouters/Expr.hs b/src/Language/Haskell/Brittany/Layouters/Expr.hs
index 98b9d03..fc63cfd 100644
--- a/src/Language/Haskell/Brittany/Layouters/Expr.hs
+++ b/src/Language/Haskell/Brittany/Layouters/Expr.hs
@@ -559,7 +559,8 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of
           start = docCols ColListComp
                     [ docNodeAnnKW lexpr Nothing
                     $ appSep $ docLit $ Text.pack "["
-                    , docNodeAnnKW lexpr (Just AnnOpenS)
+                    , docSetBaseY
+                    $ docNodeAnnKW lexpr (Just AnnOpenS)
                     $ List.last stmtDocs
                     ]
           (s1:sM) = List.init stmtDocs
@@ -590,7 +591,8 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of
         , docSetBaseY $ docLines
           [ docSeq
             [ docLit $ Text.pack "["
-            , docNodeAnnKW lexpr (Just AnnOpenS) $ docForceSingleline e
+            , docSeparator
+            , docSetBaseY $ docNodeAnnKW lexpr (Just AnnOpenS) $ e
             ]
           , docLit $ Text.pack "]"
           ]