diff --git a/examples/wave/wave-eager-mpi.py b/examples/wave/wave-eager-mpi.py
index a2c9b14bad7e5d5799b4a5d0645339f7ec222996..fc09cbd5f2718c39449fdfbaf4deaef6bbadc8ae 100644
--- a/examples/wave/wave-eager-mpi.py
+++ b/examples/wave/wave-eager-mpi.py
@@ -59,9 +59,9 @@ def wave_flux(discr, c, w_tpair):
             )
 
     # upwind
-    v_jump = np.dot(normal, v.int-v.ext)
+    v_jump = np.dot(normal, v.ext-v.int)
     flux_weak += flat_obj_array(
-            0.5*(u.int-u.ext),
+            0.5*(u.ext-u.int),
             0.5*normal*scalar(v_jump),
             )
 
diff --git a/examples/wave/wave-eager-var-velocity.py b/examples/wave/wave-eager-var-velocity.py
index 741d38ec72d983fd49ca5f4edf875a9fac2e76d3..5164562cd03453f4a544fd2feb724bc44f8ce1d6 100644
--- a/examples/wave/wave-eager-var-velocity.py
+++ b/examples/wave/wave-eager-var-velocity.py
@@ -60,10 +60,9 @@ def wave_flux(discr, c, w_tpair):
             )
 
     # upwind
-    v_jump = np.dot(normal, v.int-v.ext)
     flux_weak += flat_obj_array(
-            0.5*(u.int-u.ext),
-            0.5*normal*scalar(v_jump),
+            0.5*(u.ext-u.int),
+            0.5*normal*scalar(np.dot(normal, v.ext-v.int)),
             )
 
     # FIXME this flux is only correct for continuous c
diff --git a/examples/wave/wave-eager.py b/examples/wave/wave-eager.py
index a7b11fbe4b5ad2a56a86dab3191f24a286fecffa..21c6d73a79d32adaae116e2183016ad88e0a82b5 100644
--- a/examples/wave/wave-eager.py
+++ b/examples/wave/wave-eager.py
@@ -57,10 +57,9 @@ def wave_flux(discr, c, w_tpair):
             )
 
     # upwind
-    v_jump = np.dot(normal, v.int-v.ext)
     flux_weak += flat_obj_array(
-            0.5*(u.int-u.ext),
-            0.5*normal*scalar(v_jump),
+            0.5*(u.ext-u.int),
+            0.5*normal*scalar(np.dot(normal, v.ext-v.int)),
             )
 
     return discr.project(w_tpair.dd, "all_faces", c*flux_weak)