@@ -448,7 +448,14 @@ elementToBeamer slideLevel (Sec lvl _num (ident,classes,kvs) tit elts)
448448 : tit ++ [RawInline "latex" "}"] )
449449 : bs ++ [RawBlock "latex" "\\end{block}"]
450450 | lvl < slideLevel = do
451− bs <- concat `fmap` mapM (elementToBeamer slideLevel) elts
451+ let isSec Sec{} = True
452+ isSec _ = False
453+ let (contentElts, secElts) = break isSec elts
454+ let elts' = if null contentElts
455+ then secElts
456+ else Sec slideLevel [] nullAttr tit contentElts :
457+ secElts
458+ bs <- concat `fmap` mapM (elementToBeamer slideLevel) elts'
452459 return $ Header lvl (ident,classes,kvs) tit : bs
453460 | otherwise = do -- lvl == slideLevel
454461 -- note: [fragile] is required or verbatim breaks