could you please elaborate? I did derive from dict quite a few times and upon quick "check" again it seems ok to overload 
```
$> cat d.py ; python-all d.py 
class D(dict):
    def __getitem__(self, key):
        return dict.__getitem__(self, key) + "(overloaded by %s)" % type(self)

d = D({1: 'a'})
print(d[1])
d[1] = 'b'; d[2] = 'c'
print(d[1])
Testing using /usr/bin/python2.4
a(overloaded by <class '__main__.D'>)
b(overloaded by <class '__main__.D'>)
Testing using /usr/bin/python2.5
a(overloaded by <class '__main__.D'>)
b(overloaded by <class '__main__.D'>)
Testing using /usr/bin/python2.6
a(overloaded by <class '__main__.D'>)
b(overloaded by <class '__main__.D'>)
Testing using /usr/bin/python2.7
a(overloaded by <class '__main__.D'>)
b(overloaded by <class '__main__.D'>)
Testing using /usr/bin/python3.2
a(overloaded by <class '__main__.D'>)
b(overloaded by <class '__main__.D'>)
Testing using /usr/bin/python3.3
a(overloaded by <class '__main__.D'>)
b(overloaded by <class '__main__.D'>)
Testing using /usr/bin/python2.6-dbg
a(overloaded by <class '__main__.D'>)
b(overloaded by <class '__main__.D'>)
[15083 refs]
Testing using /usr/bin/python2.7-dbg
a(overloaded by <class '__main__.D'>)
b(overloaded by <class '__main__.D'>)
[18377 refs]
Testing using /usr/bin/python3.3-dbg
a(overloaded by <class '__main__.D'>)
b(overloaded by <class '__main__.D'>)
```