diff --git a/data/pandoc.lua b/data/pandoc.lua
index 1e2d2a061..dc09c85f8 100644
--- a/data/pandoc.lua
+++ b/data/pandoc.lua
@@ -267,7 +267,12 @@ M.MetaInlines = M.MetaValue:create_constructor(
 -- @tparam {MetaValue,...} meta_values list of meta values
 M.MetaList = M.MetaValue:create_constructor(
   'MetaList',
-  function (content) return ensureList(content) end
+  function (content)
+    if content.tag == 'MetaList' then
+      return content
+    end
+    return ensureList(content)
+  end
 )
 
 --- Meta map