diff --git a/pint/quantity.py b/pint/quantity.py
index 627e3f2..b83a053 100644
--- a/pint/quantity.py
+++ b/pint/quantity.py
@@ -559,7 +559,7 @@ class Quantity(PrettyIPython, SharedRegistryObject):
                 if unit1 != unit2:
                     power = self._REGISTRY._get_dimensionality_ratio(unit1, unit2)
                     if power:
-                        newunits = newunits.add(unit2, exp / power).remove(unit1)
+                        newunits = newunits.add(unit2, exp / power).remove([unit1])
                         break
 
         return self.ito(newunits)
diff --git a/pint/registry.py b/pint/registry.py
index 444b363..e0c1d36 100644
--- a/pint/registry.py
+++ b/pint/registry.py
@@ -1132,11 +1132,11 @@ class NonMultiplicativeRegistry(BaseRegistry):
         # clean src from offset units by converting to reference
         if src_offset_unit:
             value = self._units[src_offset_unit].converter.to_reference(value, inplace)
-
-        src = src.remove([src_offset_unit])
+            src = src.remove([src_offset_unit])
 
         # clean dst units from offset units
-        dst = dst.remove([dst_offset_unit])
+        if dst_offset_unit:
+            dst = dst.remove([dst_offset_unit])
 
         # Convert non multiplicative units to the dst.
         value = super()._convert(value, src, dst, inplace, False)
diff --git a/pint/util.py b/pint/util.py
index 3b6c467..d8d8c09 100644
--- a/pint/util.py
+++ b/pint/util.py
@@ -286,7 +286,7 @@ class UnitsContainer(Mapping):
         if newval:
             new._d[key] = newval
         else:
-            new._d.pop(key, None)
+            new._d.pop(key)
         new._hash = None
         return new
 
@@ -296,7 +296,7 @@ class UnitsContainer(Mapping):
         """
         new = self.copy()
         for k in keys:
-            new._d.pop(k, None)
+            new._d.pop(k)
         new._hash = None
         return new
 

DimensionalityError with auto_reduce_dimensions=True
I have encountered the following situation: a division between two quantities gives an error depending on the operand's order:
```
>>> from pint import UnitRegistry
>>> ureg = UnitRegistry(auto_reduce_dimensions=True)
>>> velocity = 1 *ureg.m/ureg.s
>>> cross_section = 1 * ureg.um**2
>>> velocity / cross_section
<Quantity(1000000.0, '1 / micrometer / second')>
>>> 1 / (velocity / cross_section)
<Quantity(1e-06, 'micrometer * second')>
>>> cross_section/velocity
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/pcatach/Projects/test/env/lib/python3.7/site-packages/pint/quantity.py", line 911, in __truediv__
    return self._mul_div(other, operator.truediv)
  File "/home/pcatach/Projects/test/env/lib/python3.7/site-packages/pint/quantity.py", line 75, in wrapped
    result = f(self, *args, **kwargs)
  File "/home/pcatach/Projects/test/env/lib/python3.7/site-packages/pint/quantity.py", line 62, in wrapped
    result.ito_reduced_units()
  File "/home/pcatach/Projects/test/env/lib/python3.7/site-packages/pint/quantity.py", line 443, in ito_reduced_units
    return self.ito(newunits)
  File "/home/pcatach/Projects/test/env/lib/python3.7/site-packages/pint/quantity.py", line 362, in ito
    **ctx_kwargs)
  File "/home/pcatach/Projects/test/env/lib/python3.7/site-packages/pint/quantity.py", line 351, in _convert_magnitude
    inplace=isinstance(self._magnitude, ndarray))
  File "/home/pcatach/Projects/test/env/lib/python3.7/site-packages/pint/registry.py", line 711, in convert
    return self._convert(value, src, dst, inplace)
  File "/home/pcatach/Projects/test/env/lib/python3.7/site-packages/pint/registry.py", line 1242, in _convert
    return super(ContextRegistry, self)._convert(value, src, dst, inplace)
  File "/home/pcatach/Projects/test/env/lib/python3.7/site-packages/pint/registry.py", line 995, in _convert
    return super(NonMultiplicativeRegistry, self)._convert(value, src, dst, inplace)
  File "/home/pcatach/Projects/test/env/lib/python3.7/site-packages/pint/registry.py", line 733, in _convert
    raise DimensionalityError(src, dst, src_dim, dst_dim)
pint.errors.DimensionalityError: Cannot convert from 'micrometer ** 2 * second / meter' ([length] * [time]) to 'second' ([time])
```
The error does not occur when I have `auto_reduce_dimensions` set to `False`. It also does not occur when `cross_section` is set to `1*ureg.m**2` (but it persists if `nm`, `pm`, etc.)
`python=3.7.3`
`pint=0.9`

diff --git a/pint/testsuite/test_issues.py b/pint/testsuite/test_issues.py
index 145d0cc..ddbe4b3 100644
--- a/pint/testsuite/test_issues.py
+++ b/pint/testsuite/test_issues.py
@@ -670,6 +670,13 @@ class TestIssues(QuantityTestCase):
         assert a != b
         assert a != c
 
+    def test_issue902(self):
+        ureg = UnitRegistry(auto_reduce_dimensions=True)
+        velocity = 1 * ureg.m / ureg.s
+        cross_section = 1 * ureg.um ** 2
+        result = cross_section / velocity
+        assert result == 1e-12 * ureg.m * ureg.s
+
     def test_issue912(self):
         """pprint.pformat() invokes sorted() on large sets and frozensets and graciously
         handles TypeError, but not generic Exceptions. This test will fail if

pip install -e .[test]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-mpl
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
cycler==0.11.0
exceptiongroup==1.2.2
fonttools==4.38.0
importlib-metadata==6.7.0
importlib-resources==5.12.0
iniconfig==2.0.0
Jinja2==3.1.6
kiwisolver==1.4.5
MarkupSafe==2.1.5
matplotlib==3.5.3
numpy==1.21.6
packaging==24.0
Pillow==9.5.0
-e git+https://github.com/hgrecco/pint.git@3936c36badcb27f12cad5d25072035613e7a35b0#egg=Pint
pluggy==1.2.0
pyparsing==3.1.4
pytest==7.4.4
pytest-cov==4.1.0
pytest-mpl==0.17.0
python-dateutil==2.9.0.post0
six==1.17.0
tomli==2.0.1
typing_extensions==4.7.1
zipp==3.15.0

name: pint
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - coverage==7.2.7
      - cycler==0.11.0
      - exceptiongroup==1.2.2
      - fonttools==4.38.0
      - importlib-metadata==6.7.0
      - importlib-resources==5.12.0
      - iniconfig==2.0.0
      - jinja2==3.1.6
      - kiwisolver==1.4.5
      - markupsafe==2.1.5
      - matplotlib==3.5.3
      - numpy==1.21.6
      - packaging==24.0
      - pillow==9.5.0
      - pluggy==1.2.0
      - pyparsing==3.1.4
      - pytest==7.4.4
      - pytest-cov==4.1.0
      - pytest-mpl==0.17.0
      - python-dateutil==2.9.0.post0
      - six==1.17.0
      - tomli==2.0.1
      - typing-extensions==4.7.1
      - zipp==3.15.0
prefix: /opt/conda/envs/pint

pint/testsuite/test_issues.py::TestIssues::test_issue902
pint/testsuite/test_issues.py::TestIssues::test_alternative_angstrom_definition pint/testsuite/test_issues.py::TestIssues::test_angstrom_creation pint/testsuite/test_issues.py::TestIssues::test_issue104 pint/testsuite/test_issues.py::TestIssues::test_issue105 pint/testsuite/test_issues.py::TestIssues::test_issue121 pint/testsuite/test_issues.py::TestIssues::test_issue121b pint/testsuite/test_issues.py::TestIssues::test_issue127 pint/testsuite/test_issues.py::TestIssues::test_issue170 pint/testsuite/test_issues.py::TestIssues::test_issue171_T pint/testsuite/test_issues.py::TestIssues::test_issue171_real_imag pint/testsuite/test_issues.py::TestIssues::test_issue250 pint/testsuite/test_issues.py::TestIssues::test_issue252 pint/testsuite/test_issues.py::TestIssues::test_issue29 pint/testsuite/test_issues.py::TestIssues::test_issue323 pint/testsuite/test_issues.py::TestIssues::test_issue339 pint/testsuite/test_issues.py::TestIssues::test_issue354_356_370 pint/testsuite/test_issues.py::TestIssues::test_issue44 pint/testsuite/test_issues.py::TestIssues::test_issue45 pint/testsuite/test_issues.py::TestIssues::test_issue45b pint/testsuite/test_issues.py::TestIssues::test_issue468 pint/testsuite/test_issues.py::TestIssues::test_issue482 pint/testsuite/test_issues.py::TestIssues::test_issue483 pint/testsuite/test_issues.py::TestIssues::test_issue50 pint/testsuite/test_issues.py::TestIssues::test_issue52 pint/testsuite/test_issues.py::TestIssues::test_issue523 pint/testsuite/test_issues.py::TestIssues::test_issue532 pint/testsuite/test_issues.py::TestIssues::test_issue54 pint/testsuite/test_issues.py::TestIssues::test_issue54_related pint/testsuite/test_issues.py::TestIssues::test_issue61 pint/testsuite/test_issues.py::TestIssues::test_issue62 pint/testsuite/test_issues.py::TestIssues::test_issue625a pint/testsuite/test_issues.py::TestIssues::test_issue625b pint/testsuite/test_issues.py::TestIssues::test_issue625c pint/testsuite/test_issues.py::TestIssues::test_issue655a pint/testsuite/test_issues.py::TestIssues::test_issue655b pint/testsuite/test_issues.py::TestIssues::test_issue66 pint/testsuite/test_issues.py::TestIssues::test_issue66b pint/testsuite/test_issues.py::TestIssues::test_issue69 pint/testsuite/test_issues.py::TestIssues::test_issue74 pint/testsuite/test_issues.py::TestIssues::test_issue75 pint/testsuite/test_issues.py::TestIssues::test_issue783 pint/testsuite/test_issues.py::TestIssues::test_issue85 pint/testsuite/test_issues.py::TestIssues::test_issue856 pint/testsuite/test_issues.py::TestIssues::test_issue856b pint/testsuite/test_issues.py::TestIssues::test_issue86 pint/testsuite/test_issues.py::TestIssues::test_issue876 pint/testsuite/test_issues.py::TestIssues::test_issue912 pint/testsuite/test_issues.py::TestIssues::test_issue93 pint/testsuite/test_issues.py::TestIssues::test_issues86b pint/testsuite/test_issues.py::TestIssues::test_micro_creation
pint/util.py pint/registry.py pint/quantity.py
pint/util.py pint/registry.py pint/quantity.py