diff --git a/grudge/op.py b/grudge/op.py
index 7f95301465b85873ec1bda4ad4264fc1f52dc633..56c6f1716dcd23af22ca20e3ac416974ba1f0644 100644
--- a/grudge/op.py
+++ b/grudge/op.py
@@ -797,6 +797,9 @@ def norm(dcoll, vec, p, dd=None):
     if dd is None:
         dd = "vol"
 
+    if isinstance(vec, np.ndarray):
+        return sum(norm(dcoll, vec_i, p, dd=dd) for vec_i in vec)
+
     actx = vec.array_context
     dd = dof_desc.as_dofdesc(dd)
     vec = project(dcoll, "vol", dd, vec)