diff --git a/djblets/db/fields.py b/djblets/db/fields.py
index 6e24f85726ded57d4877b70782e6a521999265aa..09e6882bac35be070193b8b07daf185c8bb330e8 100644
--- a/djblets/db/fields.py
+++ b/djblets/db/fields.py
@@ -617,7 +617,10 @@ class RelationCounterField(CounterField):
                     "a ForeignKey ('%s')"
                     % rel_field_name)
 
-            dispatch_uid = id(self)
+            dispatch_uid = '%s-%s.%s-related-save' % (
+                id(self),
+                self.__class__.__module__,
+                self.__class__.__name__)
 
             if is_m2m:
                 # This is going to be one end or the other of a ManyToManyField
diff --git a/djblets/db/tests/test_relation_counter_field.py b/djblets/db/tests/test_relation_counter_field.py
index eac51a2f9336bd1c81ce0af03e4678e17f320652..718ba46397d90ad730fb334567c19fe7adc11b48 100644
--- a/djblets/db/tests/test_relation_counter_field.py
+++ b/djblets/db/tests/test_relation_counter_field.py
@@ -116,30 +116,34 @@ class RelationCounterFieldTests(TestModelsLoaderMixin, TestCase):
         # signal connection from the first stuck around and saw that
         # updated=False, which it expected would be True. However, it didn't
         # check first if it was matching the expected instance.
+        base_receiver_count = len(post_save.receivers)
+
         model1 = M2MRefModel()
         model2 = M2MRefModel()
         self.assertEqual(model1.pk, None)
         self.assertEqual(model2.pk, None)
-        self.assertEqual(len(post_save.receivers), 2)
+        self.assertEqual(len(post_save.receivers), base_receiver_count + 2)
 
         # Perform the first save, which will do update=True.
         model2.save()
-        self.assertEqual(len(post_save.receivers), 1)
+        self.assertEqual(len(post_save.receivers), base_receiver_count + 1)
 
         # Perform the second save, which will do update=False.
         model2.save()
-        self.assertEqual(len(post_save.receivers), 1)
+        self.assertEqual(len(post_save.receivers), base_receiver_count + 1)
 
     def test_disconnect_signal_on_destroy(self):
         """Testing RelationCounterField disconnects signals for an object when
         it falls out of scope
         """
+        base_receiver_count = len(post_save.receivers)
+
         model = M2MRefModel()
         self.assertEqual(model.pk, None)
-        self.assertEqual(len(post_save.receivers), 1)
+        self.assertEqual(len(post_save.receivers), base_receiver_count + 1)
 
         model = None
-        self.assertEqual(len(post_save.receivers), 0)
+        self.assertEqual(len(post_save.receivers), base_receiver_count)
 
 
     #
