* Prepare the table for the operation SELECT tableWithDuplicates ALTER TABLE ADD COLUMN lDuplicate L * Mark everything initially as a duplicate REPLACE ALL lDuplicate WITH .T. * Create an index of unique records INDEX ON my+Unique+Key+Fields UNIQUE TAG dupTemp * Mark every unique record as not being a duplicate (the nature of the INDEX ON command mandates that the UNIQUE records are top-most in row order) REPLACE ALL lDuplicate WITH .F. * Remove the index SET INDEX TO * The records which are marked lDuplicate = .T. are the second (and later) duplicates * Delete those records and then PACK, mark lDeleted = .T., or whatever... ALTER TABLE DROP COLUMN lDuplicate DELETE TAG dupTemp