diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+0.6.2
+----
+* `ListT`'s `Functor` instance doesn't require an underlying `Monad`.
+
 0.6.1
 ----
 * Compatibility with Semigroup/Monoid proposal
diff --git a/List.cabal b/List.cabal
--- a/List.cabal
+++ b/List.cabal
@@ -1,5 +1,5 @@
 Name:                List
-Version:             0.6.1
+Version:             0.6.2
 Category:            Control
 Synopsis:            List monad transformer and class
 Description:
diff --git a/src/Control/Monad/ListT.hs b/src/Control/Monad/ListT.hs
--- a/src/Control/Monad/ListT.hs
+++ b/src/Control/Monad/ListT.hs
@@ -60,8 +60,12 @@
     mappend = flip (foldrL' cons)
 #endif
 
-instance Monad m => Functor (ListT m) where
-    fmap func = foldrL' (cons . func) mempty
+instance Functor m => Functor (ListT m) where
+    fmap func (ListT action) =
+        ListT (fmap f action)
+        where
+            f Nil = Nil
+            f (Cons x xs) = Cons (func x) (fmap func xs)
 
 instance Monad m => Monad (ListT m) where
     return = ListT . return . (`Cons` mempty)
