diff --git a/examples/wave/wave-eager.py b/examples/wave/wave-eager.py
index 7daf2b8573414f00f6b8c80af05b64047d1ca9c4..f80ff2c7c978e5c56ec7fb59cb6f270bc1b5361e 100644
--- a/examples/wave/wave-eager.py
+++ b/examples/wave/wave-eager.py
@@ -118,8 +118,8 @@ def bump(discr, queue, t=0):
 
     nodes = discr.nodes().with_queue(queue)
     center_dist = join_fields([
-        nodes[0] - source_center[0],
-        nodes[1] - source_center[1],
+        nodes[i] - source_center[i]
+        for i in range(discr.dim)
         ])
 
     return (
@@ -143,8 +143,14 @@ def main():
 
     order = 3
 
-    # no deep meaning here, just a fudge factor
-    dt = 0.75/(nel_1d*order**2)
+    if dim == 2:
+        # no deep meaning here, just a fudge factor
+        dt = 0.75/(nel_1d*order**2)
+    elif dim == 3:
+        # no deep meaning here, just a fudge factor
+        dt = 0.45/(nel_1d*order**2)
+    else:
+        raise ValueError("don't have a stable time step guesstimate")
 
     print("%d elements" % mesh.nelements)
 
@@ -155,7 +161,7 @@ def main():
             [discr.zeros(queue) for i in range(discr.dim)]
             )
 
-    vis = make_visualizer(discr, discr.order+3)
+    vis = make_visualizer(discr, discr.order+3 if dim == 2 else discr.order)
 
     def rhs(t, w):
         return wave_operator(discr, c=1, w=w)