diff --git a/usadelndsoc/core.py b/usadelndsoc/core.py
index 1b4774ac92ffcfc9f8e84059ad95534e292ca843..d8c4e8ac81352c5cb2dd7b8958724c79616de941 100644
--- a/usadelndsoc/core.py
+++ b/usadelndsoc/core.py
@@ -56,6 +56,7 @@ class Core:
         for i, j in zip(*np.where(m)):
             M = self._Omega[i, j] + 1j * self._omega * tau3
             Q = signm(-1j * M)
+            Q = Q * np.sign(self._omega)
             g = np.linalg.solve(np.eye(2) + Q[:2, :2], Q[:2, 2:])
             gt = np.linalg.solve(np.eye(2) - Q[2:, 2:], Q[2:, :2])
             Phi[i, j, 0] = g