def m2m_clean_unchanged_fields(dict_diff):
    """
    returns a list of dicts with only the changes
    """
    dict_list = []
    for key in sorted(dict_diff):
        new_dict = {}
        dict_ = dict_diff.get(key)
        for value in sorted(dict_):
            compound_key = '%s.%s' % (key, value)
            if dict_[value][0] == dict_[value][1]:
                del dict_[value]
            else:
                new_dict[compound_key] = dict_[value]
        del dict_diff[key]
        if new_dict:
            dict_list.append(new_dict)
    return dict_list
