diff --git a/pymbolic/mapper/distributor.py b/pymbolic/mapper/distributor.py
index 2f6f96a7ccb1f4498aa79da89b967dae0815ce79..8abf993f1aef7c87a9c1fa825312629997905fd4 100644
--- a/pymbolic/mapper/distributor.py
+++ b/pymbolic/mapper/distributor.py
@@ -90,12 +90,12 @@ class DistributeMapper(IdentityMapper):
     def map_power(self, expr):
         from pymbolic.primitives import Sum
 
+        newbase = self.rec(expr.base)
         if isinstance(expr.base, Product):
             return self.rec(pymbolic.flattened_product(
                 child**expr.exponent for child in newbase))
 
         if isinstance(expr.exponent, int):
-            newbase = self.rec(expr.base)
             if isinstance(newbase, Sum):
                 return self.map_product(
                         pymbolic.flattened_product(