--- dbus-1.4.6/dbus/dbus-marshal-header.c 2011-01-27 18:22:00.000000000 +0530 +++ dbus-1.4.6/dbus/dbus-marshal-header.c 2011-07-22 16:12:23.314755007 +0530 @@ -1468,14 +1468,21 @@ _dbus_header_byteswap (DBusHeader *header, int new_order) { + unsigned char byte_order; + if (header->byte_order == new_order) return; + byte_order = _dbus_string_get_byte (&header->data, BYTE_ORDER_OFFSET); + _dbus_assert (header->byte_order == byte_order); + _dbus_marshal_byteswap (&_dbus_header_signature_str, 0, header->byte_order, new_order, &header->data, 0); + _dbus_string_set_byte (&header->data, BYTE_ORDER_OFFSET, new_order); + header->byte_order = new_order; } --- dbus-1.4.6/dbus/dbus-message.c 2011-02-17 22:54:10.000000000 +0530 +++ dbus-1.4.6/dbus/dbus-message.c 2011-07-22 16:10:49.320754961 +0530 @@ -4638,7 +4638,7 @@ if (validity == DBUS_VALID) { - _dbus_assert(have_message); + _dbus_assert (have_message || (header_len + body_len) > len); return header_len + body_len; } else