diff --git a/lib/modules/Calendar.pmod/Swedish.pmod b/lib/modules/Calendar.pmod/Swedish.pmod
index 21e475b48a3f129c2753feee52b609e505c086c2..fc5905e18d072034dc5c2a208b49150263430cc8 100644
--- a/lib/modules/Calendar.pmod/Swedish.pmod
+++ b/lib/modules/Calendar.pmod/Swedish.pmod
@@ -41,11 +41,9 @@ class Year
 
       array(array(string)) a;
 
-      // insert test for year here
-      if (!(a=namedays_cache[this->leap()+" "+this->leap_day()]))
+      if (!(a=namedays_cache[nameday_group(this)]))
       {
-      // insert test for year here
-	 a=namedays_1993;
+	 a=nameday_list(this);
 
 	 if (this->leap())
 	 {
@@ -55,7 +53,7 @@ class Year
 	       a[this->leap_day()..];
 	 }
 
-	 namedays_cache[this->leap()+" "+this->leap_day()]=a;
+	 namedays_cache[nameday_group(this)]=a;
       }
 
       return _namedays=a;
@@ -65,7 +63,7 @@ class Year
    {
       if (!_nameday_lookup
 	 && !(_nameday_lookup=
-	      namedays_lookup_cache[this->leap()+" "+this->leap_day()]))
+	      namedays_lookup_cache[nameday_group(this)]))
       {
 	 mapping m=([]);
 	 int i;
@@ -92,11 +90,26 @@ class Day
    }
 }
 
-// --- namnsdagar, data -------------------------------------------------
+// --- swedish namedays, data and functions ------------------------------
 
 mapping namedays_cache=([]);
 mapping namedays_lookup_cache=([]);
 
+string nameday_group(object year)
+{
+   return (year->number()<1993)+":"+
+          (year->leap())+":"+
+          (year->leap_day());
+}
+
+array(array(string)) nameday_list(object year)
+{
+   if (year->number()<1993)
+      return namedays_1986;
+   else
+      return namedays_1993;
+}
+
 /**
 
 Name database from alma-1.0, 
@@ -233,3 +246,183 @@ array(array(string)) namedays_1993=
    ({"Adam"}), ({"Eva"}), ({}), ({"Stefan","Staffan"}),
    ({"Johannes","Hannes"}), ({"Abel","Set"}), ({"Gunl�g","�sl�g"}),
    ({"Sylvester"}), });
+
+
+array(array(string)) namedays_1986=
+({ ({"Svea","Sverker"}), ({"Alfred","Alfrida"}), ({"Rut","Ritva"}),
+   ({"Hanna","Hannele"}), ({"Baltsar","Kasper"}), ({"August","Augusta"}),
+   ({"Erland","Erhard"}), ({"Gunnar","Gunder"}), ({"Sigurd","Sigmund"}),
+   ({"Hugo","Hagar"}), ({"Frideborg","Fridolf"}), ({"Knut"}),
+   ({"Felix","Felicia"}), ({"Laura","Liv"}), ({"Hjalmar","Hervor"}),
+   ({"Anton","Tony"}), ({"Hilda","Hildur"}), ({"Henrik","Henry"}),
+   ({"Fabian","Sebastian"}), ({"Agnes","Agneta"}), ({"Vincent","Veine"}),
+   ({"Emilia","Emilie"}), ({"Erika","Eira"}), ({"Paul","P�l"}),
+   ({"Bodil","Boel"}), ({"G�te","G�ta"}), ({"Karl","Karla"}),
+   ({"Valter","Vilma"}), ({"Gunhild","Gunilla"}), ({"Ivar","Joar"}),
+   ({"Max","Magda"}), ({"Marja","Mia"}), ({"Disa","Hj�rdis"}),
+   ({"Ansgar","Anselm"}), ({"Lisa","Elise"}), ({"Dorotea","Dora"}),
+   ({"Rikard","Ricky","Rigmor"}), ({"Berta","Bert","Bertram"}),
+   ({"Fanny","Sanny","Sonny"}), ({"Eugenia","Egon","Eira"}),
+   ({"Yngve","Yvette","Yvonne"}), ({"Evelina","Elaine","Evelyn"}),
+   ({"Agne","Alin","Alina"}), ({"Valentin","Valentina","Vally"}),
+   ({"Sigfrid","Sigbert","Sigbritt"}), ({"Julia","Juliana","Juliette"}),
+   ({"Alexandra","Sandor","Sandra"}), ({"Frida","Fride","Frode"}),
+   ({"Gabriella","Ella","Elna"}), ({"Hulda","Haldis","Haldo"}),
+   ({"Hilding","Hildeborg","Hildemar"}), ({"Martina","Tim","Tina"}),
+   ({"Torsten","Toivo","Torun"}), ({"Mattias","Matti","Mats"}),
+   ({"Sigvard","Sigvald","Sigvor"}), ({"Torgny","Torvald"}),
+   ({"Lage","Laila","Lave"}), ({"Maria","Marie","Mary"}),
+   ({"Albin","Alba","Alban"}), ({"Ernst","Erna","Ernfrid"}),
+   ({"Gunborg","Gunbritt","Gunvald"}), ({"Adrian","Adrienne","Astor"}),
+   ({"Tora","Toini","Tor"}), ({"Ebba","Ebon","Evonne"}),
+   ({"Ottilia","Petra","Petronella"}), ({"Filippa","Gunl�g","�sl�g"}),
+   ({"Torbj�rn","Torben","Torgun"}), ({"Edla","Edling","Ethel"}),
+   ({"Edvin","Diana","Edna"}), ({"Viktoria","Vibeke","Viking"}),
+   ({"Greger","Grels","Greta"}), ({"Matilda","Maud","Moa"}),
+   ({"Kristofer","Christel","Christer"}), ({"Herbert","Herta","Hervor"}),
+   ({"Gertrud","Gertie","G�lin"}), ({"Edvard","Eda","Eddie"}),
+   ({"Josef","James","Janet"}), ({"Joakim","Jockum","Kim"}),
+   ({"Bengt","Bengta","Benita"}), ({"Viktor","Vimar","V�ge"}),
+   ({"Gerda","Anngerd","Gerd"}), ({"Gabriel","Gabrielle","Gunni"}),
+   ({"Mary","Marion"}), ({"Emanuel","Emanuella","Immanuel"}),
+   ({"Rudolf","Rode","Rudi"}), ({"Malkolm","Elma","Elmer"}),
+   ({"Jonas","Jon","Jonna"}), ({"Holger","Olga"}),
+   ({"Ester","Estrid","Vasti"}), ({"Harald","Hadar","Hardy"}),
+   ({"Gudmund","Gudmar","Gunder"}), ({"Ferdinand","Gunvi","Gunvor"}),
+   ({"Ambrosius","Irene","Irina"}), ({"Nanna","Nancy","Nanny"}),
+   ({"Vilhelm","William","Willy"}), ({"Ingemund","Ingemo","Irma"}),
+   ({"Hemming","Heimer","Helmut"}), ({"Otto","Orvar","Ottar"}),
+   ({"Ingvar","Ingvald","Ingvor"}), ({"Ulf","Ylva","Yrsa"}),
+   ({"Julius","Gillis"}), ({"Artur","Aldor","Atle"}),
+   ({"Tiburtius","Ellen","Elly"}), ({"Olivia","Oliver","Ove"}),
+   ({"Patrik","Patricia","Percy"}), ({"Elias","Elis","Elise"}),
+   ({"Valdemar","Valdis","Volmar"}), ({"Olavus Petri","Olaus Petri"}),
+   ({"Amalia","Amelie","Amy"}), ({"Anselm","Annevi","Annvor"}),
+   ({"Albertina","Alida","Allan"}), ({"Georg","Georgina","J�rgen"}),
+   ({"Vega","Viggo","Viveka"}), ({"Markus","Marika","Mark"}),
+   ({"Teresia","Terese","Tessy"}), ({"Engelbrekt","Engelbert","Enok"}),
+   ({"Ture","Turid","Tuve"}), ({"Tyko","Toralf","Torulf"}),
+   ({"Mariana","Marianne","Marina"}), ({"Valborg","Maj","Maja"}),
+   ({"Filip","�sa","�se"}), ({"G�ta","G�rel","G�tmar"}),
+   ({"Monika","Majne","Mona"}), ({"Gotthard","Gotthild","Gotty"}),
+   ({"Sigmund","Sigge"}), ({"Gustava","Gullvi","Gullbritt"}),
+   ({"�ke","�ge","�got"}), ({"Jonathan","John","Johnny"}),
+   ({"Esbj�rn","Elvy","Essy"}), ({"M�rta","Meta","M�rit"}),
+   ({"Charlotta","Charlotte","Lotta"}), ({"Linnea","Linn","Lis"}),
+   ({"Halvard","Hallvor","Halvar"}), ({"Sofia","Sia","Sofie"}),
+   ({"Hilma","Helvi","Hilmer"}), ({"Rebecka","Renee","Rosita"}),
+   ({"Erik","Erk","Jerker"}), ({"Alrik","Alda","Altea"}),
+   ({"Karolina","Carola","Caroline"}),
+   ({"Konstantin","Conny","Konstatia"}), ({"Henning","Henny","P�l"}),
+   ({"Desideria","Dennis","Desiree"}), ({"Ragnvald","Ragnvi","Ragnvor"}),
+   ({"Urban","Una","Uno"}), ({"Vilhelmina","Vilma","Vilmar"}),
+   ({"Blenda","Beda","Britten"}), ({"Ingeborg","Ingabritt","Ingbritt"}),
+   ({"Kristi Himmelsf�rdsdag"}), ({"Baltsar","Bill","Billy"}),
+   ({"Fritjof","Majny","Majvi"}), ({"Isabella","Iris","Isa"}),
+   ({"Nikodemus","Nina","Ninni"}), ({"Rutger","Runa","Rune"}),
+   ({"Ingemar","Ingar","Ingmarie"}), ({"Holmfrid","Helfrid","Helfrida"}),
+   ({"Bo","Bodil","Boel"}), ({"Danmarks grundlagsdag"}),
+   ({"Gustav","Gusten","G�sta"}), ({"Robert","Robin","Ruben"}),
+   ({"Salomon","Sally"}), ({"B�rje","Belinda","Bj�rg"}),
+   ({"Svante","Sante","Sjunne"}), ({"Bertil","Berit","Berthold"}),
+   ({"Eskil","Eje","Evan"}), ({"Aina","Aino","Roine"}),
+   ({"H�kan","Hakon","Hakvin"}), ({"Justina","Jim","Jimmy"}),
+   ({"Axel","Axelia","Axelina"}), ({"Torborg","Torhild","Toril"}),
+   ({"Bj�rn","Bjarne","Bj�rne"}), ({"Germund","Jerry","Jill"}),
+   ({"Flora","Florence","Florentin"}), ({"Alf","Alvin","Alvina"}),
+   ({"Paulina","Pamela","Paulette"}), ({"Adolf","Adolfina","Ally"}),
+   ({"Johan","Jan"}), ({"David","Davida","Daisy"}),
+   ({"Rakel","Rafael","Ralf"}), ({"Selma","Selim","Selmer"}),
+   ({"Leo","Lola","Liselott"}), ({"Petrus","Peter","Petter"}),
+   ({"Elof","Elvira","Viran"}), ({"Aron","Arent","Arild"}),
+   ({"Rosa","Rose","Rosemarie"}), ({"Aurora","Andre","Aurelia"}),
+   ({"Ulrika","Ellika","Ulla"}), ({"Melker","Marja","Mirjam"}),
+   ({"Esaias","Elisiv","Esse"}), ({"Klas","Claudia","Klaus"}),
+   ({"Kjell","Kajsa","Kettil"}), ({"G�tilda","G�ran","J�rn"}),
+   ({"Anund","Anita","Ante"}), ({"Eleonora","Eleonor","Ellinor"}),
+   ({"Herman","Hanne","Hermine"}), ({"Joel","Joar","Jorunn"}),
+   ({"Folke","Fale","Fylgia"}), ({"Ragnhild","Ragni","Runo"}),
+   ({"Reinhold","Reine","Reino"}), ({"Alexis","Alex","Alice"}),
+   ({"Fredrik","Fred","Freddy"}), ({"Sara","Charles","Saga"}),
+   ({"Margareta","Margit","Margret"}), ({"Johanna","Jean","Jeanette"}),
+   ({"Magdalena","Magda","Madeleine"}), ({"Emma","Elena","Emmy"}),
+   ({"Kristina","Kerstin","Kristin"}), ({"Jakob","Jack"}),
+   ({"Jesper","Jessika","Jessie"}), ({"Marta","Marit","Marita"}),
+   ({"Botvid","Reidar","Reidun"}), ({"Olof","Ola","Olle"}),
+   ({"Algot","Margot","Vilgot"}), ({"Elin","Elon","Elina"}),
+   ({"Per","Peder","Pernilla"}), ({"Karin","Karen","K�re"}),
+   ({"Tage","Tanja","Truls"}), ({"Arne","Arna","Arnevi"}),
+   ({"Ulrik","Unn","Unni"}), ({"Sixten","S�ve","S�lve"}),
+   ({"Arnold","Annika","Annmari"}), ({"Sylvia","Silja","Silvia"}),
+   ({"Roland","Ronald","Ronny"}), ({"Lars","Lasse","Lorentz"}),
+   ({"Susanna","Sanna","Susanne"}), ({"Klara","Clarence","Clary"}),
+   ({"Hillevi","Hilja","Irja"}), ({"Ebbe","Eberhard","Efraim"}),
+   ({"Stella","Estelle","Stellan"}), ({"Brynolf","Benjamin","Benny"}),
+   ({"Verner","Verna","Veronika"}), ({"Helena","Helen","Helny"}),
+   ({"Magnus","Mogens","M�ns"}), ({"Bernhard","Berna","Bernt"}),
+   ({"Josefina","Josefin"}), ({"Henrietta","Harriet","Harry"}),
+   ({"Signe","Signar","Signy"}), ({"Bartolomeus","Carita","Rita"}),
+   ({"Lovisa","Louis","Louise"}), ({"�sten","Ejvind","�jvind"}),
+   ({"Rolf","Raoul","Rasmus"}), ({"Augustin","Gusti","Gurli"}),
+   ({"Hans","Hampus","Hasse"}), ({"Albert","Albrekt","Aste"}),
+   ({"Arvid","Arvida","Vidar"}), ({"Samuel","Sam","Solveig"}),
+   ({"Justus","Jane","Judit"}), ({"Alfhild","Alfons","Arja"}),
+   ({"Moses","Molly","My"}), ({"Adela","Adele","Adin"}),
+   ({"Sakarias","Siv","Sivert"}), ({"Regina","Gilbert","Gisela"}),
+   ({"Alma","Adils","Almar"}), ({"Augusta","Gunda","Gunde"}),
+   ({"Tord","Tordis","Torgil"}), ({"Dagny","Dag","Daga"}),
+   ({"Tyra","Tyr"}), ({"Ambj�rn","Stig","Styrbj�rn"}),
+   ({"Ida","Idar","Vida"}), ({"Sigrid","Siri","Solbritt"}),
+   ({"Eufemia","Cornelia","Cornelius"}),
+   ({"Hildegard","Hilbert","Hildebrand"}), ({"Alvar","Alva","Alve"}),
+   ({"Fredrika","Frej","Freja"}), ({"Agda","Jan","Jannika"}),
+   ({"Matteus","Majbritt","Majlis"}), ({"Maurits","Marlene","Moritz"}),
+   ({"Tekla","Trond","Tryggve"}), ({"Gerhard","Gert","Glenn"}),
+   ({"Signhild","Sanfrid","Signhild"}), ({"Enar","Einar","Eja"}),
+   ({"Dagmar","Donald","Douglas"}), ({"Lennart","Lena","Leonard"}),
+   ({"Mikael","Majken","Mikaela"}), ({"Helge","Heidi","H�rje"}),
+   ({"r","Ragna","Ragne"}), ({"Ludvig","Levi","Liv"}),
+   ({"Evald","Eila","Eilert"}), ({"Frans","Franciska","Frank"}),
+   ({"Bror","Brage","Bruno"}), ({"Jenny","Jennifer","Jens"}),
+   ({"Birgitta","Birgit","Britt"}), ({"Nils","Nilla","Nelly"}),
+   ({"Ingrid","Inger","Ingolf"}), ({"Helmer","Helmina","Helmy"}),
+   ({"Erling","Elvin","Elvina"}), ({"Valfrid","Ina","Inez"}),
+   ({"Teofil","Terje","tjelvar"}), ({"Manfred","Mandor","Manne"}),
+   ({"Hedvig","Hartvig","Hedda"}), ({"Fingal","Finn","Flemming"}),
+   ({"Antonietta","Anette","Tony"}), ({"Lukas","Lillemor","Lilly"}),
+   ({"Tore","Bojan Borghild"}), ({"Sibylla","Camilla","Kasper"}),
+   ({"Birger","Brita","Britta"}), ({"Seved","Sigvid","Ursula"}),
+   ({"S�ren","Severin"}), ({"Evert","Eivor","Elving"}),
+   ({"Inga","Ingalill","Ingert"}), ({"Amanda","Manda","Mandy"}),
+   ({"Sabina","Sebastian","Sussy"}), ({"Simon","Simeon","Simone"}),
+   ({"Viola","Vivi","Vivianne"}), ({"Elsa","Elsie","Ilse"}),
+   ({"Edit","Edgar","Edor"}), ({"Tobias","Tova","Tove"}),
+   ({"Hubert","Raymond","Roy"}), ({"Sverker","Nora","Nore"}),
+   ({"Eugen","Ebert","Egil"}), ({"Gustav Adolf","Gull","Gulli"}),
+   ({"Ingegerd","Ingel","Ingela"}), ({"Vendela","Vanda","Ville"}),
+   ({"Teodor","Tea","Ted"}), ({"Martin Luther","Mait","Martin"}),
+   ({"M�rten","Marion","Morgan"}), ({"Konrad","Kuno","Kurt"}),
+   ({"Kristian","Karsten","Kersti"}), ({"Emil","Milly","Mimmi"}),
+   ({"Leopold","Leif","Lilian"}), ({"Edmund","Elida","Elisa"}),
+   ({"Napoleon","Naemi","Naima"}), ({"Magnhild","Magna","Magne"}),
+   ({"Elisabet","Lisa","Lisbeth"}), ({"Pontus","Polly","Povel"}),
+   ({"Helga","Helle","Hilde"}), ({"Cecilia","Cilla","Cissi"}),
+   ({"Klemens","Ketty","Kitty"}), ({"Gudrun","Gullan","Gullvor"}),
+   ({"Katarina","Carina","Katrin"}), ({"Torkel","Torleif"}),
+   ({"Astrid","Asta","Astri"}), ({"Malte","Malvina","Mia"}),
+   ({"Sune","Sonja","Synn�ve"}), ({"Anders","Andrea","Andreas"}),
+   ({"Oskar","Ole","Ossian"}), ({"Beata","Beatrice","Betty"}),
+   ({"Lydia","Linda","Love"}), ({"Barbro","Barbara","Boris"}),
+   ({"Sven","Svend","Svenning"}), ({"Nikolaus","Niklas","nikolina"}),
+   ({"Agaton","Angela","Angelika"}), ({"Virginia","Vera","Vesta"}),
+   ({"Anna","Ann","Annie"}), ({"Malin","Majvor","Malena"}),
+   ({"Daniel","Dan","Daniela"}), ({"Alexander","Pia","Pierre"}),
+   ({"Lucia","Lisen","Lisette"}), ({"Sten","Stina","Sture"}),
+   ({"Gottfrid","Kaj","Kajsa"}), ({"Assar","Odd","Osvald"}),
+   ({"Inge","Ilona","Irmeli"}), ({"Abraham","Abdon","Gideon"}),
+   ({"Isak","Isidor","Isidora"}), ({"Israel","Gina","Gitte"}),
+   ({"Tomas","Tom","Tommy"}), ({"Natanael","Natalia","Natan"}),
+   ({"Adam","Ada","Adina"}), ({"Eva","Evita","Evy"}),
+   ({"Stefan","Staffan","Stefanie"}), ({"Johannes","Hannes","Johan"}),
+   ({"Abel","Abbe"}), ({"Set","Viva","Vivari"}),
+   ({"Sylvester","Sylve","Sylvi"})});