Re-instated diff, this time with Luke's heuristic, so should be a lot quicker :)