We study problems of allocating objects among people. Some objects may be initially owned and the rest are unowned. Each person needs exactly one object and initially owns at most one object. We drop the common assumption of strict preferences. Without this assumption, it suffices to study problems where each person initially owns an object and every object is owned. For such problems, when preferences are strict, the “top trading cycles” algorithm provides the only rule that is efficient, strategy-proof, and individually rational (Ma 1994). Our contribution is to generalize this algorithm to accommodate indifference without compromising on efficiency and incentives.