'Remove a header from the set.  This raises an :exc:`KeyError` if the
header is not in the set.
.. versionchanged:: 0.5
In older versions a :exc:`IndexError` was raised instead of a
:exc:`KeyError` if the object was missing.
:param header: the header to be removed.'

def remove(self, header):

    key = header.lower()
    if (key not in self._set):
        raise KeyError(header)
    self._set.remove(key)
    for (idx, key) in enumerate(self._headers):
        if (key.lower() == header):
            del self._headers[idx]
            break
    if (self.on_update is not None):
        self.on_update(self)
