diff --git a/reflex-dom-colonnade.cabal b/reflex-dom-colonnade.cabal
--- a/reflex-dom-colonnade.cabal
+++ b/reflex-dom-colonnade.cabal
@@ -1,5 +1,5 @@
 name:                reflex-dom-colonnade
-version:             0.4.3
+version:             0.4.4
 synopsis:            Use colonnade with reflex-dom
 description:         Please see README.md
 homepage:            https://github.com/andrewthad/colonnade#readme
@@ -18,7 +18,7 @@
     Reflex.Dom.Colonnade
   build-depends:
       base >= 4.7 && < 5
-    , colonnade >= 0.4.1
+    , colonnade >= 0.4.4
     , contravariant
     , vector
     , reflex
diff --git a/src/Reflex/Dom/Colonnade.hs b/src/Reflex/Dom/Colonnade.hs
--- a/src/Reflex/Dom/Colonnade.hs
+++ b/src/Reflex/Dom/Colonnade.hs
@@ -124,8 +124,8 @@
 dynamicEventful tableAttrs as encoding@(Encoding v) = do
   elAttr "table" tableAttrs $ do
     b1 <- theadBuild encoding
-    b2 <- el "tbody" $ flip foldMapM as $ \a -> do
-      el "tr" $ flip foldMapM v $ \(OneEncoding _ encode) -> do
+    b2 <- el "tbody" $ flip foldlMapM as $ \a -> do
+      el "tr" $ flip foldlMapM v $ \(OneEncoding _ encode) -> do
         dynPair <- mapDyn encode a
         dynAttrs <- mapDyn cellAttrs dynPair
         dynContent <- mapDyn cellContents dynPair
@@ -134,8 +134,11 @@
         switchPromptly never e
     return (mappend b1 b2)
 
-foldMapM :: (Foldable t, Monoid b, Monad m) => (a -> m b) -> t a -> m b
-foldMapM f = foldrM (\a b -> fmap (flip mappend b) (f a)) mempty
+-- foldMapM :: (Foldable t, Monoid b, Monad m) => (a -> m b) -> t a -> m b
+-- foldMapM f = foldlM (\b a -> fmap (flip mappend b) (f a)) mempty
+
+foldlMapM :: (Foldable t, Monoid b, Monad m) => (a -> m b) -> t a -> m b
+foldlMapM f = foldlM (\b a -> fmap (mappend b) (f a)) mempty
 
 foldAlternativeM :: (Foldable t, Monoid b, Monad m) => (a -> m b) -> t a -> m b
 foldAlternativeM f = foldrM (\a b -> fmap (flip mappend b) (f a)) mempty
