diff --git a/indra/llcommon/llsdutil.cpp b/indra/llcommon/llsdutil.cpp
index ad27f19e858d5ddea8c16ad8144fecdb16632f5d..ec883130bdbc61f466a9ca6ead2ce37cf0f99fb8 100644
--- a/indra/llcommon/llsdutil.cpp
+++ b/indra/llcommon/llsdutil.cpp
@@ -691,9 +691,10 @@ namespace llsd
 LLSD& drill(LLSD& blob, const LLSD& rawPath)
 {
     // Treat rawPath uniformly as an array. If it's not already an array,
-    // store it as the only entry in one.
+    // store it as the only entry in one. (But let's say Undefined means an
+    // empty array.)
     LLSD path;
-    if (rawPath.isArray())
+    if (rawPath.isArray() || rawPath.isUndefined())
     {
         path = rawPath;
     }