diff --git a/lib/modules/Array.pmod b/lib/modules/Array.pmod
index 37248e3bd9cb6c84bd69a3ae4342f61209ff3ed6..874950c843f1bc6a07e7961ca22bf1cb2d4c531a 100644
--- a/lib/modules/Array.pmod
+++ b/lib/modules/Array.pmod
@@ -74,6 +74,23 @@ array shuffle(array arr)
   return(arr);
 }
 
+array permute(array a,int n)
+{
+   int q=sizeof(a);
+   int i;
+   a=a[..]; // copy
+   
+   while (n && q)
+   {
+      int x=n%q; 
+      n/=q; 
+      q--; 
+      if (x) [a[i],a[i+x]]=({ a[i+x],a[i] });
+      i++;
+   }  
+   
+   return a;
+}
 
 int search_array(mixed *arr, mixed fun, mixed ... args)
 {
diff --git a/lib/modules/Calendar.pmod/Swedish.pmod b/lib/modules/Calendar.pmod/Swedish.pmod
index 97cc47fa3e8d62d09bcb0e4a63b786fa89d09189..4e7e8bfcb4e9440ab8a98abce7bd8d5ad0d19097 100644
--- a/lib/modules/Calendar.pmod/Swedish.pmod
+++ b/lib/modules/Calendar.pmod/Swedish.pmod
@@ -1,4 +1,4 @@
-inherit Calendar.ISO;
+inherit Calendar.ISO:ISO;
 
 void create()
 {
@@ -11,13 +11,9 @@ void create()
 	"fredag","lördag","söndag"});
 }
 
-constant ISO_Week=::Week;
-constant ISO_Year=::Year;
-constant ISO_Day=::Day;
-
 class Week
 {
-   inherit ISO_Week;
+   inherit ISO::Week;
 
    string name()
    {
@@ -27,7 +23,7 @@ class Week
 
 class Year
 {
-   inherit ISO_Year;
+   inherit ISO::Year;
 
    array(array(string)) _namedays;
    mapping(string:int) _nameday_lookup;
@@ -88,7 +84,7 @@ class Year
 
 class Day
 {
-   inherit ISO_Day;
+   inherit ISO::Day;
 
    array(string) names()
    {