'Reimplement update, so it goes through our sanity checks.'

def update(self, *args, **kwargs):

    for src in args:
        if hasattr(src, 'keys'):
            for key in src:
                self[key] = src[key]
        else:
            for (key, val) in src:
                self[key] = val
    for key in kwargs:
        self[key] = kwargs[key]
