We are working towards repairing polyhedral or parametric spline CAD models that have errors in their B-REP. Errors like cracks, degeneracies, duplication, holes and overlaps are usually introduced in solid models due to imprecise arithmetic, model transformations, designer's fault, programming bugs, etc. Such errors often hamper further processing like finite element analysis, radiosity computation and rapid prototyping. Our fault-repair algorithm converts an unordered collection of primitives to a shared-vertex representation to help eliminate errors. This is done by choosing, for each boundary, the most appropriate boundary to unify it with. The two boundaries are then geometrically and topologically merged by moving vertices. At the end of this process, each polygon boundary is either coincident with another or is a boundary edge for a hole or a dangling wall and may be appropriately repaired. Finally, in order to allow user-inspection of the automatic corrections, we produce a visualization of the repair and let the user mark the corrections that conflict with the original design intent. A subsequent iteration of the correction algorithm then produces a repair that is commensurate with the intent. Thus, by involving the users in a feedback loop, we are able to refine the correction to their satisfaction.