# Spell names properly
Raphaël Hertzog <hertzog@debian.org>
Nicolas François <nekral-guest@users.alioth.debian.org>
Javier Fernández-Sanguino Peña <jfs@debian.org> <jfs@javifsp.no-ip.org>
Javier Fernández-Sanguino Peña <jfs@debian.org>
Eddy Petrișor <eddyp-guest@users.alioth.debian.org>
Jiří Paleček <jpalecek@web.de>
# Use full names
Marcos Alvarez Costales <marcos.alvarez.costales@gmail.com>
Kenshi Muto <kmuto@debian.org>
# Handle alias disparity
Felipe Augusto van de Wiel <faw@debian.org>
Bart Cornelis <cobaco@skolelinux.no> <cobaco-guest@users.alioth.debian.org>
# Name changes
Peter Krefting <peter@softwolves.pp.se> <peter@svarten.intern.softwolves.pp.se>
Peter Krefting <peter@softwolves.pp.se>
Peter Krefting <peterk@debian.org>
# Use real mail addresses
<elmig@debianpt.org> <elmig@dv2585ep.(none)>
<robert@debian.org> <robert@vox.robbo.home>
