Issue #27539: Fix unnormalised Fraction.__pow__ result for negative exponent and base. Thanks Vedran Čačić.
diff --git a/Lib/fractions.py b/Lib/fractions.py
index 60b0728..9aabab3 100644
--- a/Lib/fractions.py
+++ b/Lib/fractions.py
@@ -484,10 +484,14 @@
                     return Fraction(a._numerator ** power,
                                     a._denominator ** power,
                                     _normalize=False)
-                else:
+                elif a._numerator >= 0:
                     return Fraction(a._denominator ** -power,
                                     a._numerator ** -power,
                                     _normalize=False)
+                else:
+                    return Fraction((-a._denominator) ** -power,
+                                    (-a._numerator) ** -power,
+                                    _normalize=False)
             else:
                 # A fractional power will generally produce an
                 # irrational number.
diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py
index 1699852..9df4a54 100644
--- a/Lib/test/test_fractions.py
+++ b/Lib/test/test_fractions.py
@@ -356,6 +356,19 @@
         z = pow(F(-1), F(1, 2))
         self.assertAlmostEqual(z.real, 0)
         self.assertEqual(z.imag, 1)
+        # Regression test for #27539.
+        p = F(-1, 2) ** 0
+        self.assertEqual(p, F(1, 1))
+        self.assertEqual(p.numerator, 1)
+        self.assertEqual(p.denominator, 1)
+        p = F(-1, 2) ** -1
+        self.assertEqual(p, F(-2, 1))
+        self.assertEqual(p.numerator, -2)
+        self.assertEqual(p.denominator, 1)
+        p = F(-1, 2) ** -2
+        self.assertEqual(p, F(4, 1))
+        self.assertEqual(p.numerator, 4)
+        self.assertEqual(p.denominator, 1)
 
     def testMixedArithmetic(self):
         self.assertTypedEquals(F(11, 10), F(1, 10) + 1)
diff --git a/Misc/ACKS b/Misc/ACKS
index 51c8d10..1c9363a 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -217,6 +217,7 @@
 Ralph Butler
 Laurent De Buyst
 Zach Byrne
+Vedran Čačić
 Nicolas Cadou
 Jp Calderone
 Arnaud Calmettes
diff --git a/Misc/NEWS b/Misc/NEWS
index 54cae1d..7530624 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -46,6 +46,9 @@
 Library
 -------
 
+- Issue #27539: Fix unnormalised ``Fraction.__pow__`` result in the case
+  of negative exponent and negative base.
+
 - Issue #21718: cursor.description is now available for queries using CTEs.
 
 - Issue #2466: posixpath.ismount now correctly recognizes mount points which