I've seen this method three times : there must be some possible refactoring on it...