diff --git a/djmoney/money.py b/djmoney/money.py
index 70bea0b..b744c66 100644
--- a/djmoney/money.py
+++ b/djmoney/money.py
@@ -106,7 +106,6 @@ class Money(DefaultMoney):
     # we overwrite the 'targets' so the wrong synonyms are called
     # Example: we overwrite __add__; __radd__ calls __add__ on DefaultMoney...
     __radd__ = __add__
-    __rsub__ = __sub__
     __rmul__ = __mul__
 
 
diff --git a/docs/changes.rst b/docs/changes.rst
index 2643b4d..8c0b272 100644
--- a/docs/changes.rst
+++ b/docs/changes.rst
@@ -15,6 +15,7 @@ Changelog
 **Fixed**
 
 - Pin ``pymoneyed<1.0`` as it changed the ``repr`` output of the ``Money`` class.
+- Subtracting ``Money`` from ``moneyed.Money``. Regression, introduced in ``1.2``. `#593`_
 
 `1.2.2`_ - 2020-12-29
 ---------------------
@@ -694,6 +695,7 @@ wrapping with ``money_manager``.
 .. _0.3: https://github.com/django-money/django-money/compare/0.2...0.3
 .. _0.2: https://github.com/django-money/django-money/compare/0.2...a6d90348085332a393abb40b86b5dd9505489b04
 
+.. _#593: https://github.com/django-money/django-money/issues/593
 .. _#586: https://github.com/django-money/django-money/issues/586
 .. _#585: https://github.com/django-money/django-money/pull/585
 .. _#583: https://github.com/django-money/django-money/issues/583

diff --git a/tests/test_money.py b/tests/test_money.py
index 65199c4..bb7ea79 100644
--- a/tests/test_money.py
+++ b/tests/test_money.py
@@ -2,7 +2,7 @@ from django.utils.translation import override
 
 import pytest
 
-from djmoney.money import Money, get_current_locale
+from djmoney.money import DefaultMoney, Money, get_current_locale
 
 
 def test_repr():
@@ -114,3 +114,12 @@ def test_decimal_places_display_overwrite():
     assert str(number) == "$1.23457"
     number.decimal_places_display = None
     assert str(number) == "$1.23"
+
+
+def test_sub_negative():
+    # See GH-593
+    total = DefaultMoney(0, "EUR")
+    bills = (Money(8, "EUR"), Money(25, "EUR"))
+    for bill in bills:
+        total -= bill
+    assert total == Money(-33, "EUR")

Money should not override `__rsub__` method
As [reported](https://github.com/py-moneyed/py-moneyed/issues/144) in pymoneyed the following test case fails:

```python
from moneyed import Money as PyMoney
from djmoney.money import Money


def test_sub_negative():
    total = PyMoney(0, "EUR")
    bills = (Money(8, "EUR"), Money(25, "EUR"))
    for bill in bills:
        total -= bill
    assert total == Money(-33, "EUR")

# AssertionError: assert <Money: -17 EUR> == <Money: -33 EUR>
```

This is caused by `djmoney.money.Money` overriding `__rsub__`.
tests/test_money.py::test_sub_negative
tests/test_money.py::test_repr tests/test_money.py::test_html_safe tests/test_money.py::test_html_unsafe tests/test_money.py::test_default_mul tests/test_money.py::test_default_truediv tests/test_money.py::test_reverse_truediv_fails tests/test_money.py::test_get_current_locale[pl-PL_PL] tests/test_money.py::test_get_current_locale[pl_PL-pl_PL] tests/test_money.py::test_round tests/test_money.py::test_configurable_decimal_number tests/test_money.py::test_localize_decimal_places_default tests/test_money.py::test_localize_decimal_places_overwrite tests/test_money.py::test_localize_decimal_places_both tests/test_money.py::test_add_decimal_places tests/test_money.py::test_add_decimal_places_zero tests/test_money.py::test_mul_decimal_places tests/test_money.py::test_fix_decimal_places tests/test_money.py::test_fix_decimal_places_none tests/test_money.py::test_fix_decimal_places_multiple tests/test_money.py::test_decimal_places_display_overwrite