diff --git a/tests/test_signal.py b/tests/test_signal.py
index 02e3b96..a6910d5 100644
--- a/tests/test_signal.py
+++ b/tests/test_signal.py
@@ -5,6 +5,7 @@ import unittest
 import sys
 
 from gi.repository import GObject
+from gi.repository import GIMarshallingTests
 import testhelper
 from compathelper import _long
 
@@ -358,6 +359,7 @@ class CM(GObject.GObject):
         test_double=(l, double, (double, )),
         test_string=(l, str, (str, )),
         test_object=(l, object, (object, )),
+        test_paramspec=(l, GObject.ParamSpec, (GObject.ParamSpec, )),
     )
 
 
@@ -395,6 +397,13 @@ class _TestCMarshaller:
         rv = self.obj.emit("test-object", self)
         self.assertEqual(rv, self)
 
+    def testTestReturnParamSpec(self):
+        ps = GIMarshallingTests.param_spec_return()
+        rv = self.obj.emit("test-paramspec", ps)
+        self.assertEqual(rv, ps)
+        self.assertEqual(ps.name, "test-param")
+        self.assertEqual(ps.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 d26ec9f..23af128 100644
--- a/tests/testhelpermodule.c
+++ b/tests/testhelpermodule.c
@@ -339,6 +339,15 @@ test_object_callback (GObject *object, GObject *o)
   return o;
 }
 
+static GParamSpec *
+test_paramspec_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)
 {
@@ -381,6 +390,10 @@ connectcallbacks (GObject *object)
                     "test_object",
                     G_CALLBACK (test_object_callback), 
                     NULL);
+  g_signal_connect (G_OBJECT (object),
+                    "test_paramspec",
+                    G_CALLBACK (test_paramspec_callback), 
+                    NULL);
 }
 
 static PyObject *
