def update_message(self, message_id, category_id, title, body,
        extended_body, use_textile=False, private=False, notify=None):
        """
        Updates an existing message, optionally sending notifications to a
        selected list of people. Note that you can also upload files using
        this function, but you have to format the request as
        multipart/form-data. (See the ruby Basecamp API wrapper for an example
        of how to do this.)
        """
        path = '/msg/update/%u' % message_id
        req = ET.Element('request')
        req.append(self._create_message_post_elem(category_id, title, body,
            extended_body, use_textile=False, private=False))
        if notify is not None:
            for person_id in notify:
                ET.SubElement(req, 'notify').text = str(int(person_id))
        return self._request(path, req)