diff --git a/src/sage/groups/abelian_gps/abelian_group_gap.py b/src/sage/groups/abelian_gps/abelian_group_gap.py index 74bcc74de1e..a4450b53b40 100644 --- a/src/sage/groups/abelian_gps/abelian_group_gap.py +++ b/src/sage/groups/abelian_gps/abelian_group_gap.py @@ -365,7 +365,10 @@ def _element_constructor_(self, x, check=True): raise ValueError("input does not match the number of generators") x = self.one() for i in range(len(exp)): - x *= gens_gap[i]**(exp[i] % orders[i]) + if orders[i] > 0: + x *= gens_gap[i]**(exp[i] % orders[i]) + else: + x *= gens_gap[i]**exp[i] x = x.gap() return self.element_class(self, x, check=check)