Index: django/contrib/localflavor/fi/fi_municipalities.py
===================================================================
--- django/contrib/localflavor/fi/fi_municipalities.py	(revision 0)
+++ django/contrib/localflavor/fi/fi_municipalities.py	(revision 0)
@@ -0,0 +1,427 @@
+# -*- coding: utf-8 -*-
+"""
+An alphabetical list of Finnish municipalities for use as `choices` in a
+formfield.
+
+This exists in this standalone file so that it's only imported into memory
+when explicitly needed.
+"""
+
+MUNICIPALITY_CHOICES = (
+    ('akaa', 'Akaa'),
+    ('alaharma', 'Alahärmä'),
+    ('alajarvi', 'Alajärvi'),
+    ('alastaro', 'Alastaro'),
+    ('alavieska', 'Alavieska'),
+    ('alavus', 'Alavus'),
+    ('anjalankoski', 'Anjalankoski'),
+    ('artjarvi', 'Artjärvi'),
+    ('asikkala', 'Asikkala'),
+    ('askainen', 'Askainen'),
+    ('askola', 'Askola'),
+    ('aura', 'Aura'),
+    ('brando', 'Brändö'),
+    ('dragsfjard', 'Dragsfjärd'),
+    ('eckero', 'Eckerö'),
+    ('elimaki', 'Elimäki'),
+    ('eno', 'Eno'),
+    ('enonkoski', 'Enonkoski'),
+    ('enontekio', 'Enontekiö'),
+    ('espoo', 'Espoo'),
+    ('eura', 'Eura'),
+    ('eurajoki', 'Eurajoki'),
+    ('evijarvi', 'Evijärvi'),
+    ('finstrom', 'Finström'),
+    ('forssa', 'Forssa'),
+    ('foglo', 'Föglö'),
+    ('geta', 'Geta'),
+    ('haapajarvi', 'Haapajärvi'),
+    ('haapavesi', 'Haapavesi'),
+    ('hailuoto', 'Hailuoto'),
+    ('halikko', 'Halikko'),
+    ('halsua', 'Halsua'),
+    ('hamina', 'Hamina'),
+    ('hammarland', 'Hammarland'),
+    ('hankasalmi', 'Hankasalmi'),
+    ('hanko', 'Hanko'),
+    ('harjavalta', 'Harjavalta'),
+    ('hartola', 'Hartola'),
+    ('hattula', 'Hattula'),
+    ('hauho', 'Hauho'),
+    ('haukipudas', 'Haukipudas'),
+    ('hausjarvi', 'Hausjärvi'),
+    ('heinola', 'Heinola'),
+    ('heinavesi', 'Heinävesi'),
+    ('helsinki', 'Helsinki'),
+    ('himanka', 'Himanka'),
+    ('hirvensalmi', 'Hirvensalmi'),
+    ('hollola', 'Hollola'),
+    ('honkajoki', 'Honkajoki'),
+    ('houtskari', 'Houtskari'),
+    ('huittinen', 'Huittinen'),
+    ('humppila', 'Humppila'),
+    ('hyrynsalmi', 'Hyrynsalmi'),
+    ('hyvinkaa', 'Hyvinkää'),
+    ('hameenkoski', 'Hämeenkoski'),
+    ('hameenkyro', 'Hämeenkyrö'),
+    ('hameenlinna', 'Hämeenlinna'),
+    ('ii', 'Ii'),
+    ('iisalmi', 'Iisalmi'),
+    ('iitti', 'Iitti'),
+    ('ikaalinen', 'Ikaalinen'),
+    ('ilmajoki', 'Ilmajoki'),
+    ('ilomantsi', 'Ilomantsi'),
+    ('imatra', 'Imatra'),
+    ('inari', 'Inari'),
+    ('inio', 'Iniö'),
+    ('inkoo', 'Inkoo'),
+    ('isojoki', 'Isojoki'),
+    ('isokyro', 'Isokyrö'),
+    ('jaala', 'Jaala'),
+    ('jalasjarvi', 'Jalasjärvi'),
+    ('janakkala', 'Janakkala'),
+    ('joensuu', 'Joensuu'),
+    ('jokioinen', 'Jokioinen'),
+    ('jomala', 'Jomala'),
+    ('joroinen', 'Joroinen'),
+    ('joutsa', 'Joutsa'),
+    ('joutseno', 'Joutseno'),
+    ('juankoski', 'Juankoski'),
+    ('jurva', 'Jurva'),
+    ('juuka', 'Juuka'),
+    ('juupajoki', 'Juupajoki'),
+    ('juva', 'Juva'),
+    ('jyvaskyla', 'Jyväskylä'),
+    ('jyvaskylan_mlk', 'Jyväskylän maalaiskunta'),
+    ('jamijarvi', 'Jämijärvi'),
+    ('jamsa', 'Jämsä'),
+    ('jamsankoski', 'Jämsänkoski'),
+    ('jarvenpaa', 'Järvenpää'),
+    ('kaarina', 'Kaarina'),
+    ('kaavi', 'Kaavi'),
+    ('kajaani', 'Kajaani'),
+    ('kalajoki', 'Kalajoki'),
+    ('kalvola', 'Kalvola'),
+    ('kangasala', 'Kangasala'),
+    ('kangasniemi', 'Kangasniemi'),
+    ('kankaanpaa', 'Kankaanpää'),
+    ('kannonkoski', 'Kannonkoski'),
+    ('kannus', 'Kannus'),
+    ('karijoki', 'Karijoki'),
+    ('karjaa', 'Karjaa'),
+    ('karjalohja', 'Karjalohja'),
+    ('karkkila', 'Karkkila'),
+    ('karstula', 'Karstula'),
+    ('karttula', 'Karttula'),
+    ('karvia', 'Karvia'),
+    ('kaskinen', 'Kaskinen'),
+    ('kauhajoki', 'Kauhajoki'),
+    ('kauhava', 'Kauhava'),
+    ('kauniainen', 'Kauniainen'),
+    ('kaustinen', 'Kaustinen'),
+    ('keitele', 'Keitele'),
+    ('kemi', 'Kemi'),
+    ('kemijarvi', 'Kemijärvi'),
+    ('keminmaa', 'Keminmaa'),
+    ('kemio', 'Kemiö'),
+    ('kempele', 'Kempele'),
+    ('kerava', 'Kerava'),
+    ('kerimaki', 'Kerimäki'),
+    ('kestila', 'Kestilä'),
+    ('kesalahti', 'Kesälahti'),
+    ('keuruu', 'Keuruu'),
+    ('kihnio', 'Kihniö'),
+    ('kiikala', 'Kiikala'),
+    ('kiikoinen', 'Kiikoinen'),
+    ('kiiminki', 'Kiiminki'),
+    ('kinnula', 'Kinnula'),
+    ('kirkkonummi', 'Kirkkonummi'),
+    ('kisko', 'Kisko'),
+    ('kitee', 'Kitee'),
+    ('kittila', 'Kittilä'),
+    ('kiukainen', 'Kiukainen'),
+    ('kiuruvesi', 'Kiuruvesi'),
+    ('kivijarvi', 'Kivijärvi'),
+    ('kokemaki', 'Kokemäki'),
+    ('kokkola', 'Kokkola'),
+    ('kolari', 'Kolari'),
+    ('konnevesi', 'Konnevesi'),
+    ('kontiolahti', 'Kontiolahti'),
+    ('korpilahti', 'Korpilahti'),
+    ('korppoo', 'Korppoo'),
+    ('korsnas', 'Korsnäs'),
+    ('kortesjarvi', 'Kortesjärvi'),
+    ('koskitl', 'KoskiTl'),
+    ('kotka', 'Kotka'),
+    ('kouvola', 'Kouvola'),
+    ('kristiinankaupunki', 'Kristiinankaupunki'),
+    ('kruunupyy', 'Kruunupyy'),
+    ('kuhmalahti', 'Kuhmalahti'),
+    ('kuhmo', 'Kuhmo'),
+    ('kuhmoinen', 'Kuhmoinen'),
+    ('kumlinge', 'Kumlinge'),
+    ('kuopio', 'Kuopio'),
+    ('kuortane', 'Kuortane'),
+    ('kurikka', 'Kurikka'),
+    ('kuru', 'Kuru'),
+    ('kustavi', 'Kustavi'),
+    ('kuusamo', 'Kuusamo'),
+    ('kuusankoski', 'Kuusankoski'),
+    ('kuusjoki', 'Kuusjoki'),
+    ('kylmakoski', 'Kylmäkoski'),
+    ('kyyjarvi', 'Kyyjärvi'),
+    ('kalvia', 'Kälviä'),
+    ('karkola', 'Kärkölä'),
+    ('karsamaki', 'Kärsämäki'),
+    ('kokar', 'Kökar'),
+    ('koylio', 'Köyliö'),
+    ('lahti', 'Lahti'),
+    ('laihia', 'Laihia'),
+    ('laitila', 'Laitila'),
+    ('lammi', 'Lammi'),
+    ('lapinjarvi', 'Lapinjärvi'),
+    ('lapinlahti', 'Lapinlahti'),
+    ('lappajarvi', 'Lappajärvi'),
+    ('lappeenranta', 'Lappeenranta'),
+    ('lappi', 'Lappi'),
+    ('lapua', 'Lapua'),
+    ('laukaa', 'Laukaa'),
+    ('lavia', 'Lavia'),
+    ('lehtimaki', 'Lehtimäki'),
+    ('leivonmaki', 'Leivonmäki'),
+    ('lemi', 'Lemi'),
+    ('lemland', 'Lemland'),
+    ('lempaala', 'Lempäälä'),
+    ('lemu', 'Lemu'),
+    ('leppavirta', 'Leppävirta'),
+    ('lestijarvi', 'Lestijärvi'),
+    ('lieksa', 'Lieksa'),
+    ('lieto', 'Lieto'),
+    ('liljendal', 'Liljendal'),
+    ('liminka', 'Liminka'),
+    ('liperi', 'Liperi'),
+    ('lohja', 'Lohja'),
+    ('lohtaja', 'Lohtaja'),
+    ('loimaa', 'Loimaa'),
+    ('loppi', 'Loppi'),
+    ('loviisa', 'Loviisa'),
+    ('luhanka', 'Luhanka'),
+    ('lumijoki', 'Lumijoki'),
+    ('lumparland', 'Lumparland'),
+    ('luoto', 'Luoto'),
+    ('luumaki', 'Luumäki'),
+    ('luvia', 'Luvia'),
+    ('maalahti', 'Maalahti'),
+    ('maaninka', 'Maaninka'),
+    ('maarianhamina', 'Maarianhamina'),
+    ('marttila', 'Marttila'),
+    ('masku', 'Masku'),
+    ('mellila', 'Mellilä'),
+    ('merijarvi', 'Merijärvi'),
+    ('merikarvia', 'Merikarvia'),
+    ('merimasku', 'Merimasku'),
+    ('miehikkala', 'Miehikkälä'),
+    ('mikkeli', 'Mikkeli'),
+    ('mouhijarvi', 'Mouhijärvi'),
+    ('muhos', 'Muhos'),
+    ('multia', 'Multia'),
+    ('muonio', 'Muonio'),
+    ('mustasaari', 'Mustasaari'),
+    ('muurame', 'Muurame'),
+    ('muurla', 'Muurla'),
+    ('mynamaki', 'Mynämäki'),
+    ('myrskyla', 'Myrskylä'),
+    ('mantsala', 'Mäntsälä'),
+    ('mantta', 'Mänttä'),
+    ('mantyharju', 'Mäntyharju'),
+    ('naantali', 'Naantali'),
+    ('nakkila', 'Nakkila'),
+    ('nastola', 'Nastola'),
+    ('nauvo', 'Nauvo'),
+    ('nilsia', 'Nilsiä'),
+    ('nivala', 'Nivala'),
+    ('nokia', 'Nokia'),
+    ('noormarkku', 'Noormarkku'),
+    ('nousiainen', 'Nousiainen'),
+    ('nummi-pusula', 'Nummi-Pusula'),
+    ('nurmes', 'Nurmes'),
+    ('nurmijarvi', 'Nurmijärvi'),
+    ('nurmo', 'Nurmo'),
+    ('narpio', 'Närpiö'),
+    ('oravainen', 'Oravainen'),
+    ('orimattila', 'Orimattila'),
+    ('oripaa', 'Oripää'),
+    ('orivesi', 'Orivesi'),
+    ('oulainen', 'Oulainen'),
+    ('oulu', 'Oulu'),
+    ('oulunsalo', 'Oulunsalo'),
+    ('outokumpu', 'Outokumpu'),
+    ('padasjoki', 'Padasjoki'),
+    ('paimio', 'Paimio'),
+    ('paltamo', 'Paltamo'),
+    ('parainen', 'Parainen'),
+    ('parikkala', 'Parikkala'),
+    ('parkano', 'Parkano'),
+    ('pedersore', 'Pedersöre'),
+    ('pelkosenniemi', 'Pelkosenniemi'),
+    ('pello', 'Pello'),
+    ('perho', 'Perho'),
+    ('pernaja', 'Pernaja'),
+    ('pernio', 'Perniö'),
+    ('pertteli', 'Pertteli'),
+    ('pertunmaa', 'Pertunmaa'),
+    ('petajavesi', 'Petäjävesi'),
+    ('pieksamaki', 'Pieksämäki'),
+    ('pielavesi', 'Pielavesi'),
+    ('pietarsaari', 'Pietarsaari'),
+    ('pihtipudas', 'Pihtipudas'),
+    ('piikkio', 'Piikkiö'),
+    ('piippola', 'Piippola'),
+    ('pirkkala', 'Pirkkala'),
+    ('pohja', 'Pohja'),
+    ('polvijarvi', 'Polvijärvi'),
+    ('pomarkku', 'Pomarkku'),
+    ('pori', 'Pori'),
+    ('pornainen', 'Pornainen'),
+    ('porvoo', 'Porvoo'),
+    ('posio', 'Posio'),
+    ('pudasjarvi', 'Pudasjärvi'),
+    ('pukkila', 'Pukkila'),
+    ('pulkkila', 'Pulkkila'),
+    ('punkaharju', 'Punkaharju'),
+    ('punkalaidun', 'Punkalaidun'),
+    ('puolanka', 'Puolanka'),
+    ('puumala', 'Puumala'),
+    ('pyhtaa', 'Pyhtää'),
+    ('pyhajoki', 'Pyhäjoki'),
+    ('pyhajarvi', 'Pyhäjärvi'),
+    ('pyhanta', 'Pyhäntä'),
+    ('pyharanta', 'Pyhäranta'),
+    ('pyhaselka', 'Pyhäselkä'),
+    ('pylkonmaki', 'Pylkönmäki'),
+    ('palkane', 'Pälkäne'),
+    ('poytya', 'Pöytyä'),
+    ('raahe', 'Raahe'),
+    ('raisio', 'Raisio'),
+    ('rantasalmi', 'Rantasalmi'),
+    ('rantsila', 'Rantsila'),
+    ('ranua', 'Ranua'),
+    ('rauma', 'Rauma'),
+    ('rautalampi', 'Rautalampi'),
+    ('rautavaara', 'Rautavaara'),
+    ('rautjarvi', 'Rautjärvi'),
+    ('reisjarvi', 'Reisjärvi'),
+    ('renko', 'Renko'),
+    ('riihimaki', 'Riihimäki'),
+    ('ristiina', 'Ristiina'),
+    ('ristijarvi', 'Ristijärvi'),
+    ('rovaniemi', 'Rovaniemi'),
+    ('ruokolahti', 'Ruokolahti'),
+    ('ruotsinpyhtaa', 'Ruotsinpyhtää'),
+    ('ruovesi', 'Ruovesi'),
+    ('rusko', 'Rusko'),
+    ('rymattyla', 'Rymättylä'),
+    ('raakkyla', 'Rääkkylä'),
+    ('saarijarvi', 'Saarijärvi'),
+    ('salla', 'Salla'),
+    ('salo', 'Salo'),
+    ('saltvik', 'Saltvik'),
+    ('sammatti', 'Sammatti'),
+    ('sauvo', 'Sauvo'),
+    ('savitaipale', 'Savitaipale'),
+    ('savonlinna', 'Savonlinna'),
+    ('savonranta', 'Savonranta'),
+    ('savukoski', 'Savukoski'),
+    ('seinajoki', 'Seinäjoki'),
+    ('sievi', 'Sievi'),
+    ('siikainen', 'Siikainen'),
+    ('siikajoki', 'Siikajoki'),
+    ('siilinjarvi', 'Siilinjärvi'),
+    ('simo', 'Simo'),
+    ('sipoo', 'Sipoo'),
+    ('siuntio', 'Siuntio'),
+    ('sodankyla', 'Sodankylä'),
+    ('soini', 'Soini'),
+    ('somero', 'Somero'),
+    ('sonkajarvi', 'Sonkajärvi'),
+    ('sotkamo', 'Sotkamo'),
+    ('sottunga', 'Sottunga'),
+    ('sulkava', 'Sulkava'),
+    ('sund', 'Sund'),
+    ('suomenniemi', 'Suomenniemi'),
+    ('suomusjarvi', 'Suomusjärvi'),
+    ('suomussalmi', 'Suomussalmi'),
+    ('suonenjoki', 'Suonenjoki'),
+    ('sysma', 'Sysmä'),
+    ('sakyla', 'Säkylä'),
+    ('sarkisalo', 'Särkisalo'),
+    ('taipalsaari', 'Taipalsaari'),
+    ('taivalkoski', 'Taivalkoski'),
+    ('taivassalo', 'Taivassalo'),
+    ('tammela', 'Tammela'),
+    ('tammisaari', 'Tammisaari'),
+    ('tampere', 'Tampere'),
+    ('tarvasjoki', 'Tarvasjoki'),
+    ('tervo', 'Tervo'),
+    ('tervola', 'Tervola'),
+    ('teuva', 'Teuva'),
+    ('tohmajarvi', 'Tohmajärvi'),
+    ('toholampi', 'Toholampi'),
+    ('toivakka', 'Toivakka'),
+    ('tornio', 'Tornio'),
+    ('turku', 'Turku'),
+    ('tuulos', 'Tuulos'),
+    ('tuusniemi', 'Tuusniemi'),
+    ('tuusula', 'Tuusula'),
+    ('tyrnava', 'Tyrnävä'),
+    ('toysa', 'Töysä'),
+    ('ullava', 'Ullava'),
+    ('ulvila', 'Ulvila'),
+    ('urjala', 'Urjala'),
+    ('utajarvi', 'Utajärvi'),
+    ('utsjoki', 'Utsjoki'),
+    ('uurainen', 'Uurainen'),
+    ('uusikaarlepyy', 'Uusikaarlepyy'),
+    ('uusikaupunki', 'Uusikaupunki'),
+    ('vaala', 'Vaala'),
+    ('vaasa', 'Vaasa'),
+    ('vahto', 'Vahto'),
+    ('valkeakoski', 'Valkeakoski'),
+    ('valkeala', 'Valkeala'),
+    ('valtimo', 'Valtimo'),
+    ('vammala', 'Vammala'),
+    ('vampula', 'Vampula'),
+    ('vantaa', 'Vantaa'),
+    ('varkaus', 'Varkaus'),
+    ('varpaisjarvi', 'Varpaisjärvi'),
+    ('vehmaa', 'Vehmaa'),
+    ('velkua', 'Velkua'),
+    ('vesanto', 'Vesanto'),
+    ('vesilahti', 'Vesilahti'),
+    ('veteli', 'Veteli'),
+    ('vierema', 'Vieremä'),
+    ('vihanti', 'Vihanti'),
+    ('vihti', 'Vihti'),
+    ('viitasaari', 'Viitasaari'),
+    ('vilppula', 'Vilppula'),
+    ('vimpeli', 'Vimpeli'),
+    ('virolahti', 'Virolahti'),
+    ('virrat', 'Virrat'),
+    ('vardo', 'Vårdö'),
+    ('vahakyro', 'Vähäkyrö'),
+    ('vastanfjard', 'Västanfjärd'),
+    ('voyri-maksamaa', 'Vöyri-Maksamaa'),
+    ('yliharma', 'Ylihärmä'),
+    ('yli-ii', 'Yli-Ii'),
+    ('ylikiiminki', 'Ylikiiminki'),
+    ('ylistaro', 'Ylistaro'),
+    ('ylitornio', 'Ylitornio'),
+    ('ylivieska', 'Ylivieska'),
+    ('ylamaa', 'Ylämaa'),
+    ('ylane', 'Yläne'),
+    ('ylojarvi', 'Ylöjärvi'),
+    ('ypaja', 'Ypäjä'),
+    ('aetsa', 'Äetsä'),
+    ('ahtari', 'Ähtäri'),
+    ('aanekoski', 'Äänekoski')
+)
\ No newline at end of file
Index: django/contrib/localflavor/fi/__init__.py
===================================================================
Index: django/contrib/localflavor/fi/forms.py
===================================================================
--- django/contrib/localflavor/fi/forms.py	(revision 0)
+++ django/contrib/localflavor/fi/forms.py	(revision 0)
@@ -0,0 +1,22 @@
+"""
+FI-specific Form helpers
+"""
+
+from django.newforms import ValidationError
+from django.newforms.fields import RegexField, Select
+from django.utils.translation import gettext
+
+class FIZipCodeField(RegexField):
+    def __init__(self, *args, **kwargs):
+        super(FIZipCodeField, self).__init__(r'^\d{5}$',
+            max_length=None, min_length=None,
+            error_message=gettext(u'Enter a zip code in the format XXXXX.'),
+            *args, **kwargs)
+
+class FIMunicipalitySelect(Select):
+    """
+    A Select widget that uses a list of Finnish municipalities as its choices.
+    """
+    def __init__(self, attrs=None):
+        from fi_municipalities import MUNICIPALITY_CHOICES # relative import
+        super(FIMunicipalitySelect, self).__init__(attrs, choices=MUNICIPALITY_CHOICES)
Index: tests/regressiontests/forms/tests.py
===================================================================
--- tests/regressiontests/forms/tests.py	(revision 4835)
+++ tests/regressiontests/forms/tests.py	(working copy)
@@ -3878,7 +3878,58 @@
 <option value="okinawa">Okinawa</option>
 </select>
 
+# FIZipCodeField #############################################################
 
+FIZipCodeField validates that the data is a valid FI zipcode.
+>>> from django.contrib.localflavor.fi.forms import FIZipCodeField
+>>> f = FIZipCodeField()
+>>> f.clean('20540')
+u'20540'
+>>> f.clean('20101')
+u'20101'
+>>> f.clean('20s40')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a zip code in the format XXXXX.']
+>>> f.clean('205401')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a zip code in the format XXXXX.']
+>>> f.clean(None)
+Traceback (most recent call last):
+...
+ValidationError: [u'This field is required.']
+>>> f.clean('')
+Traceback (most recent call last):
+...
+ValidationError: [u'This field is required.']
+
+>>> f = FIZipCodeField(required=False)
+>>> f.clean('20540')
+u'20540'
+>>> f.clean('20101')
+u'20101'
+>>> f.clean('20s40')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a zip code in the format XXXXX.']
+>>> f.clean('205401')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a zip code in the format XXXXX.']
+>>> f.clean(None)
+u''
+>>> f.clean('')
+u''
+
+# FIMunicipalitySelect ############################################################### 
+
+A Select widget that uses a list of Finnish municipalities as its choices. 
+>>> from django.contrib.localflavor.fi.forms import FIMunicipalitySelect 
+>>> w = FIMunicipalitySelect() 
+>>> unicode(w.render('municipalities', 'turku'))
+u'<select name="municipalities">\n<option value="akaa">Akaa</option>\n<option value="alaharma">Alah\xe4rm\xe4</option>\n<option value="alajarvi">Alaj\xe4rvi</option>\n<option value="alastaro">Alastaro</option>\n<option value="alavieska">Alavieska</option>\n<option value="alavus">Alavus</option>\n<option value="anjalankoski">Anjalankoski</option>\n<option value="artjarvi">Artj\xe4rvi</option>\n<option value="asikkala">Asikkala</option>\n<option value="askainen">Askainen</option>\n<option value="askola">Askola</option>\n<option value="aura">Aura</option>\n<option value="brando">Br\xe4nd\xf6</option>\n<option value="dragsfjard">Dragsfj\xe4rd</option>\n<option value="eckero">Ecker\xf6</option>\n<option value="elimaki">Elim\xe4ki</option>\n<option value="eno">Eno</option>\n<option value="enonkoski">Enonkoski</option>\n<option value="enontekio">Enonteki\xf6</option>\n<option value="espoo">Espoo</option>\n<option value="eura">Eura</option>\n<option value="eurajoki">Eurajoki</option>\n<option value="evijarvi">Evij\xe4rvi</option>\n<option value="finstrom">Finstr\xf6m</option>\n<option value="forssa">Forssa</option>\n<option value="foglo">F\xf6gl\xf6</option>\n<option value="geta">Geta</option>\n<option value="haapajarvi">Haapaj\xe4rvi</option>\n<option value="haapavesi">Haapavesi</option>\n<option value="hailuoto">Hailuoto</option>\n<option value="halikko">Halikko</option>\n<option value="halsua">Halsua</option>\n<option value="hamina">Hamina</option>\n<option value="hammarland">Hammarland</option>\n<option value="hankasalmi">Hankasalmi</option>\n<option value="hanko">Hanko</option>\n<option value="harjavalta">Harjavalta</option>\n<option value="hartola">Hartola</option>\n<option value="hattula">Hattula</option>\n<option value="hauho">Hauho</option>\n<option value="haukipudas">Haukipudas</option>\n<option value="hausjarvi">Hausj\xe4rvi</option>\n<option value="heinola">Heinola</option>\n<option value="heinavesi">Hein\xe4vesi</option>\n<option value="helsinki">Helsinki</option>\n<option value="himanka">Himanka</option>\n<option value="hirvensalmi">Hirvensalmi</option>\n<option value="hollola">Hollola</option>\n<option value="honkajoki">Honkajoki</option>\n<option value="houtskari">Houtskari</option>\n<option value="huittinen">Huittinen</option>\n<option value="humppila">Humppila</option>\n<option value="hyrynsalmi">Hyrynsalmi</option>\n<option value="hyvinkaa">Hyvink\xe4\xe4</option>\n<option value="hameenkoski">H\xe4meenkoski</option>\n<option value="hameenkyro">H\xe4meenkyr\xf6</option>\n<option value="hameenlinna">H\xe4meenlinna</option>\n<option value="ii">Ii</option>\n<option value="iisalmi">Iisalmi</option>\n<option value="iitti">Iitti</option>\n<option value="ikaalinen">Ikaalinen</option>\n<option value="ilmajoki">Ilmajoki</option>\n<option value="ilomantsi">Ilomantsi</option>\n<option value="imatra">Imatra</option>\n<option value="inari">Inari</option>\n<option value="inio">Ini\xf6</option>\n<option value="inkoo">Inkoo</option>\n<option value="isojoki">Isojoki</option>\n<option value="isokyro">Isokyr\xf6</option>\n<option value="jaala">Jaala</option>\n<option value="jalasjarvi">Jalasj\xe4rvi</option>\n<option value="janakkala">Janakkala</option>\n<option value="joensuu">Joensuu</option>\n<option value="jokioinen">Jokioinen</option>\n<option value="jomala">Jomala</option>\n<option value="joroinen">Joroinen</option>\n<option value="joutsa">Joutsa</option>\n<option value="joutseno">Joutseno</option>\n<option value="juankoski">Juankoski</option>\n<option value="jurva">Jurva</option>\n<option value="juuka">Juuka</option>\n<option value="juupajoki">Juupajoki</option>\n<option value="juva">Juva</option>\n<option value="jyvaskyla">Jyv\xe4skyl\xe4</option>\n<option value="jyvaskylan_mlk">Jyv\xe4skyl\xe4n maalaiskunta</option>\n<option value="jamijarvi">J\xe4mij\xe4rvi</option>\n<option value="jamsa">J\xe4ms\xe4</option>\n<option value="jamsankoski">J\xe4ms\xe4nkoski</option>\n<option value="jarvenpaa">J\xe4rvenp\xe4\xe4</option>\n<option value="kaarina">Kaarina</option>\n<option value="kaavi">Kaavi</option>\n<option value="kajaani">Kajaani</option>\n<option value="kalajoki">Kalajoki</option>\n<option value="kalvola">Kalvola</option>\n<option value="kangasala">Kangasala</option>\n<option value="kangasniemi">Kangasniemi</option>\n<option value="kankaanpaa">Kankaanp\xe4\xe4</option>\n<option value="kannonkoski">Kannonkoski</option>\n<option value="kannus">Kannus</option>\n<option value="karijoki">Karijoki</option>\n<option value="karjaa">Karjaa</option>\n<option value="karjalohja">Karjalohja</option>\n<option value="karkkila">Karkkila</option>\n<option value="karstula">Karstula</option>\n<option value="karttula">Karttula</option>\n<option value="karvia">Karvia</option>\n<option value="kaskinen">Kaskinen</option>\n<option value="kauhajoki">Kauhajoki</option>\n<option value="kauhava">Kauhava</option>\n<option value="kauniainen">Kauniainen</option>\n<option value="kaustinen">Kaustinen</option>\n<option value="keitele">Keitele</option>\n<option value="kemi">Kemi</option>\n<option value="kemijarvi">Kemij\xe4rvi</option>\n<option value="keminmaa">Keminmaa</option>\n<option value="kemio">Kemi\xf6</option>\n<option value="kempele">Kempele</option>\n<option value="kerava">Kerava</option>\n<option value="kerimaki">Kerim\xe4ki</option>\n<option value="kestila">Kestil\xe4</option>\n<option value="kesalahti">Kes\xe4lahti</option>\n<option value="keuruu">Keuruu</option>\n<option value="kihnio">Kihni\xf6</option>\n<option value="kiikala">Kiikala</option>\n<option value="kiikoinen">Kiikoinen</option>\n<option value="kiiminki">Kiiminki</option>\n<option value="kinnula">Kinnula</option>\n<option value="kirkkonummi">Kirkkonummi</option>\n<option value="kisko">Kisko</option>\n<option value="kitee">Kitee</option>\n<option value="kittila">Kittil\xe4</option>\n<option value="kiukainen">Kiukainen</option>\n<option value="kiuruvesi">Kiuruvesi</option>\n<option value="kivijarvi">Kivij\xe4rvi</option>\n<option value="kokemaki">Kokem\xe4ki</option>\n<option value="kokkola">Kokkola</option>\n<option value="kolari">Kolari</option>\n<option value="konnevesi">Konnevesi</option>\n<option value="kontiolahti">Kontiolahti</option>\n<option value="korpilahti">Korpilahti</option>\n<option value="korppoo">Korppoo</option>\n<option value="korsnas">Korsn\xe4s</option>\n<option value="kortesjarvi">Kortesj\xe4rvi</option>\n<option value="koskitl">KoskiTl</option>\n<option value="kotka">Kotka</option>\n<option value="kouvola">Kouvola</option>\n<option value="kristiinankaupunki">Kristiinankaupunki</option>\n<option value="kruunupyy">Kruunupyy</option>\n<option value="kuhmalahti">Kuhmalahti</option>\n<option value="kuhmo">Kuhmo</option>\n<option value="kuhmoinen">Kuhmoinen</option>\n<option value="kumlinge">Kumlinge</option>\n<option value="kuopio">Kuopio</option>\n<option value="kuortane">Kuortane</option>\n<option value="kurikka">Kurikka</option>\n<option value="kuru">Kuru</option>\n<option value="kustavi">Kustavi</option>\n<option value="kuusamo">Kuusamo</option>\n<option value="kuusankoski">Kuusankoski</option>\n<option value="kuusjoki">Kuusjoki</option>\n<option value="kylmakoski">Kylm\xe4koski</option>\n<option value="kyyjarvi">Kyyj\xe4rvi</option>\n<option value="kalvia">K\xe4lvi\xe4</option>\n<option value="karkola">K\xe4rk\xf6l\xe4</option>\n<option value="karsamaki">K\xe4rs\xe4m\xe4ki</option>\n<option value="kokar">K\xf6kar</option>\n<option value="koylio">K\xf6yli\xf6</option>\n<option value="lahti">Lahti</option>\n<option value="laihia">Laihia</option>\n<option value="laitila">Laitila</option>\n<option value="lammi">Lammi</option>\n<option value="lapinjarvi">Lapinj\xe4rvi</option>\n<option value="lapinlahti">Lapinlahti</option>\n<option value="lappajarvi">Lappaj\xe4rvi</option>\n<option value="lappeenranta">Lappeenranta</option>\n<option value="lappi">Lappi</option>\n<option value="lapua">Lapua</option>\n<option value="laukaa">Laukaa</option>\n<option value="lavia">Lavia</option>\n<option value="lehtimaki">Lehtim\xe4ki</option>\n<option value="leivonmaki">Leivonm\xe4ki</option>\n<option value="lemi">Lemi</option>\n<option value="lemland">Lemland</option>\n<option value="lempaala">Lemp\xe4\xe4l\xe4</option>\n<option value="lemu">Lemu</option>\n<option value="leppavirta">Lepp\xe4virta</option>\n<option value="lestijarvi">Lestij\xe4rvi</option>\n<option value="lieksa">Lieksa</option>\n<option value="lieto">Lieto</option>\n<option value="liljendal">Liljendal</option>\n<option value="liminka">Liminka</option>\n<option value="liperi">Liperi</option>\n<option value="lohja">Lohja</option>\n<option value="lohtaja">Lohtaja</option>\n<option value="loimaa">Loimaa</option>\n<option value="loppi">Loppi</option>\n<option value="loviisa">Loviisa</option>\n<option value="luhanka">Luhanka</option>\n<option value="lumijoki">Lumijoki</option>\n<option value="lumparland">Lumparland</option>\n<option value="luoto">Luoto</option>\n<option value="luumaki">Luum\xe4ki</option>\n<option value="luvia">Luvia</option>\n<option value="maalahti">Maalahti</option>\n<option value="maaninka">Maaninka</option>\n<option value="maarianhamina">Maarianhamina</option>\n<option value="marttila">Marttila</option>\n<option value="masku">Masku</option>\n<option value="mellila">Mellil\xe4</option>\n<option value="merijarvi">Merij\xe4rvi</option>\n<option value="merikarvia">Merikarvia</option>\n<option value="merimasku">Merimasku</option>\n<option value="miehikkala">Miehikk\xe4l\xe4</option>\n<option value="mikkeli">Mikkeli</option>\n<option value="mouhijarvi">Mouhij\xe4rvi</option>\n<option value="muhos">Muhos</option>\n<option value="multia">Multia</option>\n<option value="muonio">Muonio</option>\n<option value="mustasaari">Mustasaari</option>\n<option value="muurame">Muurame</option>\n<option value="muurla">Muurla</option>\n<option value="mynamaki">Myn\xe4m\xe4ki</option>\n<option value="myrskyla">Myrskyl\xe4</option>\n<option value="mantsala">M\xe4nts\xe4l\xe4</option>\n<option value="mantta">M\xe4ntt\xe4</option>\n<option value="mantyharju">M\xe4ntyharju</option>\n<option value="naantali">Naantali</option>\n<option value="nakkila">Nakkila</option>\n<option value="nastola">Nastola</option>\n<option value="nauvo">Nauvo</option>\n<option value="nilsia">Nilsi\xe4</option>\n<option value="nivala">Nivala</option>\n<option value="nokia">Nokia</option>\n<option value="noormarkku">Noormarkku</option>\n<option value="nousiainen">Nousiainen</option>\n<option value="nummi-pusula">Nummi-Pusula</option>\n<option value="nurmes">Nurmes</option>\n<option value="nurmijarvi">Nurmij\xe4rvi</option>\n<option value="nurmo">Nurmo</option>\n<option value="narpio">N\xe4rpi\xf6</option>\n<option value="oravainen">Oravainen</option>\n<option value="orimattila">Orimattila</option>\n<option value="oripaa">Orip\xe4\xe4</option>\n<option value="orivesi">Orivesi</option>\n<option value="oulainen">Oulainen</option>\n<option value="oulu">Oulu</option>\n<option value="oulunsalo">Oulunsalo</option>\n<option value="outokumpu">Outokumpu</option>\n<option value="padasjoki">Padasjoki</option>\n<option value="paimio">Paimio</option>\n<option value="paltamo">Paltamo</option>\n<option value="parainen">Parainen</option>\n<option value="parikkala">Parikkala</option>\n<option value="parkano">Parkano</option>\n<option value="pedersore">Peders\xf6re</option>\n<option value="pelkosenniemi">Pelkosenniemi</option>\n<option value="pello">Pello</option>\n<option value="perho">Perho</option>\n<option value="pernaja">Pernaja</option>\n<option value="pernio">Perni\xf6</option>\n<option value="pertteli">Pertteli</option>\n<option value="pertunmaa">Pertunmaa</option>\n<option value="petajavesi">Pet\xe4j\xe4vesi</option>\n<option value="pieksamaki">Pieks\xe4m\xe4ki</option>\n<option value="pielavesi">Pielavesi</option>\n<option value="pietarsaari">Pietarsaari</option>\n<option value="pihtipudas">Pihtipudas</option>\n<option value="piikkio">Piikki\xf6</option>\n<option value="piippola">Piippola</option>\n<option value="pirkkala">Pirkkala</option>\n<option value="pohja">Pohja</option>\n<option value="polvijarvi">Polvij\xe4rvi</option>\n<option value="pomarkku">Pomarkku</option>\n<option value="pori">Pori</option>\n<option value="pornainen">Pornainen</option>\n<option value="porvoo">Porvoo</option>\n<option value="posio">Posio</option>\n<option value="pudasjarvi">Pudasj\xe4rvi</option>\n<option value="pukkila">Pukkila</option>\n<option value="pulkkila">Pulkkila</option>\n<option value="punkaharju">Punkaharju</option>\n<option value="punkalaidun">Punkalaidun</option>\n<option value="puolanka">Puolanka</option>\n<option value="puumala">Puumala</option>\n<option value="pyhtaa">Pyht\xe4\xe4</option>\n<option value="pyhajoki">Pyh\xe4joki</option>\n<option value="pyhajarvi">Pyh\xe4j\xe4rvi</option>\n<option value="pyhanta">Pyh\xe4nt\xe4</option>\n<option value="pyharanta">Pyh\xe4ranta</option>\n<option value="pyhaselka">Pyh\xe4selk\xe4</option>\n<option value="pylkonmaki">Pylk\xf6nm\xe4ki</option>\n<option value="palkane">P\xe4lk\xe4ne</option>\n<option value="poytya">P\xf6yty\xe4</option>\n<option value="raahe">Raahe</option>\n<option value="raisio">Raisio</option>\n<option value="rantasalmi">Rantasalmi</option>\n<option value="rantsila">Rantsila</option>\n<option value="ranua">Ranua</option>\n<option value="rauma">Rauma</option>\n<option value="rautalampi">Rautalampi</option>\n<option value="rautavaara">Rautavaara</option>\n<option value="rautjarvi">Rautj\xe4rvi</option>\n<option value="reisjarvi">Reisj\xe4rvi</option>\n<option value="renko">Renko</option>\n<option value="riihimaki">Riihim\xe4ki</option>\n<option value="ristiina">Ristiina</option>\n<option value="ristijarvi">Ristij\xe4rvi</option>\n<option value="rovaniemi">Rovaniemi</option>\n<option value="ruokolahti">Ruokolahti</option>\n<option value="ruotsinpyhtaa">Ruotsinpyht\xe4\xe4</option>\n<option value="ruovesi">Ruovesi</option>\n<option value="rusko">Rusko</option>\n<option value="rymattyla">Rym\xe4ttyl\xe4</option>\n<option value="raakkyla">R\xe4\xe4kkyl\xe4</option>\n<option value="saarijarvi">Saarij\xe4rvi</option>\n<option value="salla">Salla</option>\n<option value="salo">Salo</option>\n<option value="saltvik">Saltvik</option>\n<option value="sammatti">Sammatti</option>\n<option value="sauvo">Sauvo</option>\n<option value="savitaipale">Savitaipale</option>\n<option value="savonlinna">Savonlinna</option>\n<option value="savonranta">Savonranta</option>\n<option value="savukoski">Savukoski</option>\n<option value="seinajoki">Sein\xe4joki</option>\n<option value="sievi">Sievi</option>\n<option value="siikainen">Siikainen</option>\n<option value="siikajoki">Siikajoki</option>\n<option value="siilinjarvi">Siilinj\xe4rvi</option>\n<option value="simo">Simo</option>\n<option value="sipoo">Sipoo</option>\n<option value="siuntio">Siuntio</option>\n<option value="sodankyla">Sodankyl\xe4</option>\n<option value="soini">Soini</option>\n<option value="somero">Somero</option>\n<option value="sonkajarvi">Sonkaj\xe4rvi</option>\n<option value="sotkamo">Sotkamo</option>\n<option value="sottunga">Sottunga</option>\n<option value="sulkava">Sulkava</option>\n<option value="sund">Sund</option>\n<option value="suomenniemi">Suomenniemi</option>\n<option value="suomusjarvi">Suomusj\xe4rvi</option>\n<option value="suomussalmi">Suomussalmi</option>\n<option value="suonenjoki">Suonenjoki</option>\n<option value="sysma">Sysm\xe4</option>\n<option value="sakyla">S\xe4kyl\xe4</option>\n<option value="sarkisalo">S\xe4rkisalo</option>\n<option value="taipalsaari">Taipalsaari</option>\n<option value="taivalkoski">Taivalkoski</option>\n<option value="taivassalo">Taivassalo</option>\n<option value="tammela">Tammela</option>\n<option value="tammisaari">Tammisaari</option>\n<option value="tampere">Tampere</option>\n<option value="tarvasjoki">Tarvasjoki</option>\n<option value="tervo">Tervo</option>\n<option value="tervola">Tervola</option>\n<option value="teuva">Teuva</option>\n<option value="tohmajarvi">Tohmaj\xe4rvi</option>\n<option value="toholampi">Toholampi</option>\n<option value="toivakka">Toivakka</option>\n<option value="tornio">Tornio</option>\n<option value="turku" selected="selected">Turku</option>\n<option value="tuulos">Tuulos</option>\n<option value="tuusniemi">Tuusniemi</option>\n<option value="tuusula">Tuusula</option>\n<option value="tyrnava">Tyrn\xe4v\xe4</option>\n<option value="toysa">T\xf6ys\xe4</option>\n<option value="ullava">Ullava</option>\n<option value="ulvila">Ulvila</option>\n<option value="urjala">Urjala</option>\n<option value="utajarvi">Utaj\xe4rvi</option>\n<option value="utsjoki">Utsjoki</option>\n<option value="uurainen">Uurainen</option>\n<option value="uusikaarlepyy">Uusikaarlepyy</option>\n<option value="uusikaupunki">Uusikaupunki</option>\n<option value="vaala">Vaala</option>\n<option value="vaasa">Vaasa</option>\n<option value="vahto">Vahto</option>\n<option value="valkeakoski">Valkeakoski</option>\n<option value="valkeala">Valkeala</option>\n<option value="valtimo">Valtimo</option>\n<option value="vammala">Vammala</option>\n<option value="vampula">Vampula</option>\n<option value="vantaa">Vantaa</option>\n<option value="varkaus">Varkaus</option>\n<option value="varpaisjarvi">Varpaisj\xe4rvi</option>\n<option value="vehmaa">Vehmaa</option>\n<option value="velkua">Velkua</option>\n<option value="vesanto">Vesanto</option>\n<option value="vesilahti">Vesilahti</option>\n<option value="veteli">Veteli</option>\n<option value="vierema">Vierem\xe4</option>\n<option value="vihanti">Vihanti</option>\n<option value="vihti">Vihti</option>\n<option value="viitasaari">Viitasaari</option>\n<option value="vilppula">Vilppula</option>\n<option value="vimpeli">Vimpeli</option>\n<option value="virolahti">Virolahti</option>\n<option value="virrat">Virrat</option>\n<option value="vardo">V\xe5rd\xf6</option>\n<option value="vahakyro">V\xe4h\xe4kyr\xf6</option>\n<option value="vastanfjard">V\xe4stanfj\xe4rd</option>\n<option value="voyri-maksamaa">V\xf6yri-Maksamaa</option>\n<option value="yliharma">Ylih\xe4rm\xe4</option>\n<option value="yli-ii">Yli-Ii</option>\n<option value="ylikiiminki">Ylikiiminki</option>\n<option value="ylistaro">Ylistaro</option>\n<option value="ylitornio">Ylitornio</option>\n<option value="ylivieska">Ylivieska</option>\n<option value="ylamaa">Yl\xe4maa</option>\n<option value="ylane">Yl\xe4ne</option>\n<option value="ylojarvi">Yl\xf6j\xe4rvi</option>\n<option value="ypaja">Yp\xe4j\xe4</option>\n<option value="aetsa">\xc4ets\xe4</option>\n<option value="ahtari">\xc4ht\xe4ri</option>\n<option value="aanekoski">\xc4\xe4nekoski</option>\n</select>'
+
 #################################
 # Tests of underlying functions #
 #################################
Index: AUTHORS
===================================================================
--- AUTHORS	(revision 4835)
+++ AUTHORS	(working copy)
@@ -183,6 +183,7 @@
     Radek Švarz <http://www.svarz.cz/translate/>
     Swaroop C H <http://www.swaroopch.info>
     Aaron Swartz <http://www.aaronsw.com/>
+    Ville Säävuori <http://www.unessa.net/>
     Tyson Tate <tyson@fallingbullets.com>
     Tom Tobin
     Joe Topjian <http://joe.terrarum.net/geek/code/python/django/>
