# sympy__sympy-20322
# Loki Mode Multi-Agent Patch
# Attempts: 1

--- a/sympy/simplify/radsimp.py
+++ b/sympy/simplify/radsimp.py
@@ -1071,7 +1071,15 @@ def fraction(expr, exact=False):
     numer, denom = [], []
 
     for term in Mul.make_args(expr):
-        if term.is_commutative and (term.is_Pow or isinstance(term, exp)):
+        # Handle nested unevaluated Mul expressions by recursively extracting args
+        if term.is_Mul:
+            n, d = fraction(term, exact=exact)
+            numer.append(n)
+            if d is not S.One:
+                denom.append(d)
+            continue
+
+        if term.is_commutative and (term.is_Pow or isinstance(term, exp)):
             b, ex = term.as_base_exp()
             if ex.is_negative:
                 if ex is S.NegativeOne: