diff --git a/gi/overrides/Gtk.py b/gi/overrides/Gtk.py
index 376fc39..0c2f259 100644
--- a/gi/overrides/Gtk.py
+++ b/gi/overrides/Gtk.py
@@ -49,6 +49,18 @@ __all__.append('Widget')
 
 class Container(Gtk.Container, Widget):
 
+    def __len__(self):
+        return len(self.get_children())
+
+    def __contains__(self, child):
+        return child in self.get_children()
+
+    def __iter__(self):
+        return iter(self.get_children())
+
+    def __getitem__(self, item):
+        return self.get_children()[item]
+
     def get_focus_chain(self):
         success, widgets = super(Container, self).get_focus_chain()
         if success:
diff --git a/tests/test_overrides.py b/tests/test_overrides.py
index 6679623..a4cae7d 100644
--- a/tests/test_overrides.py
+++ b/tests/test_overrides.py
@@ -56,6 +56,17 @@ class TestGdk(unittest.TestCase):
         self.assertEquals(event.y_root, 5)
 
 class TestGtk(unittest.TestCase):
+
+    def test_container(self):
+        box = Gtk.VBox() # Gtk.Box is an abstract class
+        label = Gtk.Label()
+        label2 = Gtk.Label()
+        box.add(label)
+        box.add(label2)
+        self.assertTrue(label in box)
+        self.assertTrue(label2 in box)
+        self.assertEqual(len(box),2)
+
     def test_actiongroup(self):
         self.assertEquals(Gtk.ActionGroup, overrides.Gtk.ActionGroup)
         self.assertRaises(TypeError, Gtk.ActionGroup)
