def makeUnique(strings):
    """ make a list of strings unique by appending arbitrary numbers,
        e.g. if string "abc" appears twice in the list, the occurrences are
        replaced with "abc_001" and "abc_002"
    """
    result = list(strings)
    nStrings = len(strings)
    sDict = {}
    for i in range(nStrings):
        name = strings[i]
        if name in sDict:
            sDict[name].append(i)
        else:
            sDict[name] = [i]
    if len(sDict) != nStrings:
        for name in sDict:
            indexList = sDict[name]
            if len(indexList) > 1:
                for i in range(len(indexList)):
                    result[indexList[i]] += '_%03u' % (i + 1)
    return result
