diff --git a/digestive-functors-aeson.cabal b/digestive-functors-aeson.cabal
--- a/digestive-functors-aeson.cabal
+++ b/digestive-functors-aeson.cabal
@@ -1,6 +1,6 @@
 name: digestive-functors-aeson
 category: Web, JSON
-version: 1.1
+version: 1.1.2
 license: GPL-3
 license-file: LICENSE
 author: Oliver Charles
diff --git a/src/Text/Digestive/Aeson.hs b/src/Text/Digestive/Aeson.hs
--- a/src/Text/Digestive/Aeson.hs
+++ b/src/Text/Digestive/Aeson.hs
@@ -81,8 +81,6 @@
            -> (Maybe Value -> f (Maybe Value))
            -> Maybe Value
            -> f (Maybe Value)
-pathToLens [p] = key p
-pathToLens ps = let ps' = filter (not . T.null) ps
-                in key (head ps') . (foldl (.) id . map pathElem $ tail ps')
+pathToLens = foldl (.) id . map pathElem . filter (not . T.null)
   where
     pathElem p = maybe (key p) nth (readMay $ T.unpack p)
diff --git a/test/Tests.hs b/test/Tests.hs
--- a/test/Tests.hs
+++ b/test/Tests.hs
@@ -101,8 +101,17 @@
 
 
 --------------------------------------------------------------------------------
+testTopLevelLists :: Test
+testTopLevelLists = testCase "Top level lists" $ do
+  let (Just json) = decode "[\"hello\", \"world\"]"
+  (runIdentity $ snd <$> digestJSON (listOf text Nothing) json)
+    @?= Just [ "hello", "world" ]
+
+
+--------------------------------------------------------------------------------
 main :: IO ()
 main = defaultMain [ testPokemon
                    , testPokedex
+                   , testTopLevelLists
                    ]
 
