def join_dict(d1, d2):
    """Join dict objects, use keys in d1 and d2 to map values of d1 to values of d2.
    ...doctest:
        >>> join_dict({'k1': 'v1', 'k2': 'v2'}, {'k1': 'm1', 'k2':'m2', 'k3': 'm3'})
        {'v1': 'm1', 'v2': 'm2'}
    """
    ret = {}
    for k1, v1 in d1.iteritems():
        if k1 not in d2:
            raise ValueError("Could not find {k1} in {d2}".format(k1=k1, d2=d2))
        elif v1 in ret and ret[v1] != d2[k1]:
            raise ValueError('{v1} can map to different values {dk1}, {dk2}'.format(v1=v1, dk1=ret[v1], dk2=d2[k1]))
        else:
            ret[v1] = d2[k1]
    return ret