diff --git a/tests/test_properties.py b/tests/test_properties.py
index d02dac9..4bafe19 100644
--- a/tests/test_properties.py
+++ b/tests/test_properties.py
@@ -15,6 +15,7 @@ from gi.repository.GObject import \
      G_MAXULONG
 
 from gi.repository import Gio
+from gi.repository import Gtk
 
 if sys.version_info < (3, 0):
     TEST_UTF8 = "\xe2\x99\xa5"
@@ -39,6 +40,9 @@ class PropertyObject(GObject.GObject):
     enum = GObject.property(
         type=Gio.SocketType, default=Gio.SocketType.STREAM)
 
+    boxed = GObject.property(
+        type=Gtk.TextIter, flags=PARAM_READWRITE|PARAM_CONSTRUCT)
+
 class TestProperties(unittest.TestCase):
     def testGetSet(self):
         obj = PropertyObject()
@@ -67,8 +71,9 @@ class TestProperties(unittest.TestCase):
                                                'construct',
                                                'construct-only',
                                                'uint64',
-                                               'enum'])
-            self.assertEqual(len(obj), 5)
+                                               'enum',
+                                               'boxed'])
+            self.assertEqual(len(obj), 6)
 
     def testNormal(self):
         obj = new(PropertyObject, normal="123")
@@ -161,6 +166,18 @@ class TestProperties(unittest.TestCase):
         self.assertRaises(TypeError, GObject.property, type=Gio.SocketType,
                           default=1)
 
+    def textBoxed(self):
+        buf = Gtk.TextBuffer.new(None)
+        obj = new(PropertyObject)
+
+        start = buf.get_start_iter()
+        obj.props.boxed = start
+        self.assertEqual(obj.props.boxed.get_offset(), 0)
+        self.assertEqual(obj.boxed.get_offset(), 0)
+
+        self.assertRaises(TypeError, setattr, obj, 'boxed', 'foo')
+        self.assertRaises(TypeError, setattr, obj, 'boxed', object())
+
     def testRange(self):
         # kiwi code
         def max(c):
