diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml
index 50da933..8882367 100644
--- a/PySide/QtGui/typesystem_gui_common.xml
+++ b/PySide/QtGui/typesystem_gui_common.xml
@@ -651,10 +651,20 @@
-
-
-
-
+
+
+ // %FUNCTION_NAME()
+ *%CPPSELF << %1;
+ %PYARG_0 = %CONVERTTOPYTHON[QPolygon*](%CPPSELF);
+
+
+
+
+ // %FUNCTION_NAME()
+ *%CPPSELF << %1;
+ %PYARG_0 = %CONVERTTOPYTHON[QPolygon*](%CPPSELF);
+
+
diff --git a/tests/QtGui/qpolygonf_test.py b/tests/QtGui/qpolygonf_test.py
index 83e643c..f842eb4 100644
--- a/tests/QtGui/qpolygonf_test.py
+++ b/tests/QtGui/qpolygonf_test.py
@@ -18,5 +18,11 @@ class QPolygonFNotIterableTest(unittest.TestCase):
self.assertEqual(int(point.y()), i)
i += 1;
+ def testPolygonShiftOperators(self):
+ p = QPolygon()
+ self.assertEqual(len(p), 0)
+ p << QPoint(10, 20) << QPoint(20, 30) << [QPoint(20, 30), QPoint(40, 50)]
+ self.assertEqual(len(p), 4)
+
if __name__ == '__main__':
unittest.main()