diff --git a/tests/test_signal.py b/tests/test_signal.py
index d63d3fc..ed3537b 100644
--- a/tests/test_signal.py
+++ b/tests/test_signal.py
@@ -360,6 +360,7 @@ class CM(GObject.GObject):
         test_string=(l, str, (str, )),
         test_object=(l, object, (object, )),
         test_paramspec=(l, GObject.ParamSpec, ()),
+        test_paramspec_in=(l, GObject.ParamSpec, (GObject.ParamSpec, )),
     )
 
 
@@ -402,6 +403,11 @@ class _TestCMarshaller:
         self.assertEqual(rv.name, "test-param")
         self.assertEqual(rv.nick, "test")
 
+        rv2 = self.obj.emit("test-paramspec-in", rv)
+        self.assertEqual(rv, rv2)
+        self.assertEqual(rv2.name, "test-param")
+        self.assertEqual(rv2.nick, "test")
+
 if 'generic-c-marshaller' in GObject.features:
     class TestCMarshaller(_TestCMarshaller, unittest.TestCase):
         pass
diff --git a/tests/testhelpermodule.c b/tests/testhelpermodule.c
index cd178a1..16409df 100644
--- a/tests/testhelpermodule.c
+++ b/tests/testhelpermodule.c
@@ -347,6 +347,15 @@ test_paramspec_callback (GObject *object)
   return g_param_spec_boolean ("test-param", "test", "test boolean", TRUE, G_PARAM_READABLE);
 }
 
+static GParamSpec *
+test_paramspec_in_callback (GObject *object, GParamSpec *p)
+{
+  g_return_val_if_fail (G_IS_OBJECT (object), NULL);
+  g_return_val_if_fail (G_IS_PARAM_SPEC (p), NULL);
+
+  return p;
+}
+
 static void
 connectcallbacks (GObject *object)
 {
@@ -393,6 +402,10 @@ connectcallbacks (GObject *object)
                     "test_paramspec",
                     G_CALLBACK (test_paramspec_callback), 
                     NULL);
+  g_signal_connect (G_OBJECT (object),
+                    "test_paramspec_in",
+                    G_CALLBACK (test_paramspec_in_callback), 
+                    NULL);
 }
 
 static PyObject *
