diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py
index e116d828bc42208349bca789c0b1203c6d44ea65..8eb1643462c3a58e868b18b8f3a2dadd58edc805 100644
--- a/sumpy/expansion/__init__.py
+++ b/sumpy/expansion/__init__.py
@@ -611,7 +611,9 @@ def process_pde(pde):
             new_eq[k] = v * multiplier**sum(k.mi)
             if i == 0:
                 val = new_eq[k]
-            new_eq[k] /= val
+            new_eq[k] /= sym.sympify(val)
+            if isinstance(new_eq[k], sym.Integer):
+                new_eq[k] = int(new_eq[k])
         eqs.append(new_eq)
     return PDE(pde.dim, eqs=eqs), multiplier
 
@@ -663,7 +665,8 @@ class HelmholtzExpansionTermsWrangler(LinearRecurrenceBasedExpansionTermsWrangle
 
     def get_pdes(self, **kwargs):
         w = make_pde_syms(self.dim, 1)
-        return (w.laplacian() + w), 0, 1
+        k = sym.Symbol(self.helmholtz_k_name)
+        return (w.laplacian() + k**2 * w), 0, 1
 
     def _get_reduced_coeffs(self, nullspace):
         idx = []
diff --git a/sumpy/tools.py b/sumpy/tools.py
index c5103c34042b8bf4a9b91ac41cae0c0be276656c..e734d7dcd33fc0181a82ab21d554b1ba335de58d 100644
--- a/sumpy/tools.py
+++ b/sumpy/tools.py
@@ -746,7 +746,7 @@ def nth_root_assume_positive(expr, n):
     """
     expr = sym.sympify(expr)
     if expr.is_Pow:
-        return expr.base ** (expr.exp / n)
+        return expr.base ** (expr.exp / sym.Integer(n))
     else:
         return expr ** (sym.Integer(1)/n)