diff --git a/action.defaultadmin.php b/action.defaultadmin.php
index 0a0f6709b6b9762eea1567313f539ac846f61462..fc7527d3be1275d0e54df99b71a7138e3e4460d1 100644
--- a/action.defaultadmin.php
+++ b/action.defaultadmin.php
@@ -30,8 +30,8 @@ if (! $this->CheckPermission('Use ReglerAddress')) {
  * wrapped in the DisplayAdminPanel() method in the module body.
  */
  
-$groups = Group::getGroup(); 
-//echo '<pre>'; print_r($groups); echo '</pre>'; 
+$groups = Group::getGroupList(); 
+//echo '<pre>'; print_r($groups); echo '</pre>'; exit;
 
 //file_put_contents("/tmp/defaultadmin.txt",print_r($params,TRUE));
 $addrDB = AddressDB::getDB();
@@ -72,7 +72,10 @@ $smarty->assign('newButton',$place);
 
 
 $name = 'Grupp';
-$groupNames = array(' ' => 'None') + $groups;
+$groupNames = array(' ' => 'None');
+foreach ($groups as $group) {
+  $groupNames[$group->Gruppnamn] = $group->ID;
+}
 $selected = array();
 if (isset($params[$name])) $selected[] = $params[$name];
 $place = $this->CreateInputSelectList($id, $name, $groupNames, 
diff --git a/action.editGroups.php b/action.editGroups.php
new file mode 100644
index 0000000000000000000000000000000000000000..6f2cb87d59e7aad82a3b7b274cc5a8dcc13db830
--- /dev/null
+++ b/action.editGroups.php
@@ -0,0 +1,17 @@
+<?php
+if (!isset($gCms)) exit;
+//echo '<pre>'; print_r($params); echo '</pre>';
+
+if (! $this->CheckPermission('Use ReglerAddress')) {
+  return $this->DisplayErrorPage($id, $params, $returnid,
+				 'ReglerAddress access denied.');
+}
+require_once 'lib/class.Group.php';
+
+
+
+
+
+
+
+?>
diff --git a/lib/class.Group.php b/lib/class.Group.php
index 439fde1667e040b7b32b03ef8502c0de36fb4cb7..f6708e9b40692ae867f84b131a28353b918b7846 100644
--- a/lib/class.Group.php
+++ b/lib/class.Group.php
@@ -2,11 +2,11 @@
 
 class Group {
 
-  private static $maildir = '/tmp/maildir';
+  private static $maildir = '/home/leif/slask/maildir';
 
 
   private static $queryList = <<<EOS
-    select ID, Gruppnamn from Grupper order by Gruppnamn
+    select ID, Gruppnamn, GruppInfo from Grupper order by Gruppnamn
 EOS;
 
   private static $queryMembership = <<<EOS
@@ -27,19 +27,44 @@ EOS;
     Adresser.ID = AdressID and GruppID = ?
 EOS;
 
+  private static $groupFields = array('ID', 'Gruppnamn', 'GruppInfo');
+
+
   private static $instance;
 
-  private $list;
+  private static $list = array();
+
+  private function __construct($param = NULL) {
+    foreach (self::$groupFields as $field) {$this->$field = '';}
+    if (is_null($param)) return;
+    if (is_array($param)) {
+      foreach (self::$groupFields as $field) {
+	$this->$field = $param[$field];
+      }
+    }
+  }
 
-  private function __construct() {
-    global $gCms;
-    if (!isset($gCms)) exit;
-    $ADB = AddressDB::getDB();
-    $result = $ADB->Execute(self::$queryList,array());
+  public static function getGroupList() {
+    if (count(self::$list) > 0) return $list;
+    global $gCms; if (!isset($gCms)) exit;
+    $c = __CLASS__;
+    $db = AddressDB::getDB();
+    $result = $db->Execute(self::$queryList,array());
+    if ($result === false) { die("Database error!<br>" . $db->ErrorMsg());}
     while ($row = $result->FetchRow()) {
-      $this->list[$row['Gruppnamn']] = $row['ID'];
+      self::$list[] = new $c($row);
     }
+    return self::$list;
   }
+	
+  /*   global $gCms; */
+  /*   if (!isset($gCms)) exit; */
+  /*   $ADB = AddressDB::getDB(); */
+  /*   $result = $ADB->Execute(self::$queryList,array()); */
+  /*   while ($row = $result->FetchRow()) { */
+  /*     $this->list[$row['Gruppnamn']] = $row['ID']; */
+  /*   } */
+  /* } */
   
   public static function getMembers($GruppID) {
     global $gCms; if (!isset($gCms)) exit;
@@ -55,7 +80,12 @@ EOS;
 
   public static function getNonMembers($GruppID) {
     $members = self::getMembers($GruppID);
-    $nonmembers = array_diff_assoc(self::getGroup(),$members);
+    $allgroups = array();
+    self::getGroupList();
+    foreach (self::$list as $group) {
+      $allgroups[$group->Gruppnamn] = $group->ID;
+    }
+    $nonmembers = array_diff_assoc($allgroups,$members);
     return $nonmembers;
   }
     
@@ -77,24 +107,24 @@ EOS;
     if ($result === false) {die("Database error!<br>" . $db->ErrorMsg()); }
   }  
 
-  public static function getGroup() {
-    if (!isset(self::$instance)) {
-      $c = __CLASS__;
-      self::$instance = new $c;
-    }
-    return self::$instance->list;
-  }
+  /* public static function getGroup() { */
+  /*   if (!isset(self::$instance)) { */
+  /*     $c = __CLASS__; */
+  /*     self::$instance = new $c; */
+  /*   } */
+  /*   return self::$instance->list; */
+  /* } */
 
   public static function setMailLists() {
     global $gCms; if (!isset($gCms)) exit;
     $db = AddressDB::getDB();
-    $groups = self::getGroup();
+    $groups = self::getGroupList();
     if(!is_dir(self::$maildir)) mkdir(self::$maildir,'0755',true);
-    foreach ($groups as $name => $ID) {
-      $pos = strrpos($name, '.dis');
+    foreach ($groups as $group) {
+      $pos = strrpos($group->Gruppnamn, '.dis');
       if ($pos === false) continue;
       $epost = array();
-      $values = array($ID);
+      $values = array($group->ID);
       $result = $db->Execute(self::$queryMail,$values);
       if ($result === false) { die("Database error!<br>" . $db->ErrorMsg()); }
       while ($row = $result->FetchRow()) {
@@ -103,7 +133,7 @@ EOS;
       }
       if (count($epost) > 0) {
 	//	echo '<pre>'; print_r($epost); echo '</pre>';
-	$filename  = self::$maildir . '/' . $name;
+	$filename  = self::$maildir . '/' . $group->Gruppnamn;
 	$file = fopen($filename,'w');
 	if ($file === false) die('Cannot write '.$filename);
 	foreach ($epost as $line) fwrite($file,$line.PHP_EOL);