diff --git a/examples/wave/wave-eager.py b/examples/wave/wave-eager.py
index 76dab5095d2f0f53e8bf9bace9a02b4498165f62..7cab5e07d35fe7c597349314991066d7f7a4404c 100644
--- a/examples/wave/wave-eager.py
+++ b/examples/wave/wave-eager.py
@@ -111,10 +111,9 @@ def bump(discr, actx, t=0):
         for i in range(discr.dim)
         ])
 
-    exp = actx.special_func("exp")
     return (
         np.cos(source_omega*t)
-        * exp(
+        * actx.np.exp(
             -np.dot(center_dist, center_dist)
             / source_width**2))
 
diff --git a/grudge/function_registry.py b/grudge/function_registry.py
index 14970c8a6aed0cd2ea63f71ba4337accb33b81cd..7b85d18fcfbd4626b8c6ee6055c421c021c538be 100644
--- a/grudge/function_registry.py
+++ b/grudge/function_registry.py
@@ -102,7 +102,7 @@ class CElementwiseFunction(Function):
             # Loopy has a type-adaptive "abs", but no "fabs".
             func_name = "abs"
 
-        sfunc = array_context.special_func(func_name)
+        sfunc = getattr(array_context.np, func_name)
         return sfunc(*args)