diff --git a/loopy/codegen/expression.py b/loopy/codegen/expression.py
index ea0cd495837454673ddcf3f3c6dd260bd61f97c0..c15d923eb4ead4e2cead7cca90f19941e315c7a4 100644
--- a/loopy/codegen/expression.py
+++ b/loopy/codegen/expression.py
@@ -282,7 +282,12 @@ class LoopyCCodeMapper(CCodeMapper):
             from pymbolic.mapper.stringifier import PREC_PRODUCT
             real_prd = self.join_rec("*", reals, PREC_PRODUCT)
 
-            complex_prd = self.rec(complexes[0], PREC_NONE)
+            if len(complexes) == 1:
+                myprec = PREC_PRODUCT
+            else:
+                myprec = PREC_NONE
+
+            complex_prd = self.rec(complexes[0], myprec)
             for child in complexes[1:]:
                 complex_prd = "%s_mul(%s, %s)" % (
                         tgt_name, complex_prd,