diff --git a/include/class_userinfo.inc b/include/class_userinfo.inc
index e7833755cb3b2bfd4d62c15c8cb3bff89cb3d6d9..7c35f5744b192140047736188c25d19aa9d3251e 100644
--- a/include/class_userinfo.inc
+++ b/include/class_userinfo.inc
@@ -107,6 +107,12 @@ class userinfo
     $ldap->cd($this->config->current['BASE']);
 
     /* Get member groups... */
+    $ldap->search('(&(objectClass=groupOfNames)(member='.ldap_escape_f($this->dn).'))', array('dn'));
+    while ($attrs = $ldap->fetch()) {
+      $this->groups[$attrs['dn']] = $attrs['dn'];
+    }
+
+    /* Get member POSIX groups... */
     $ldap->search('(&(objectClass=posixGroup)(memberUid='.ldap_escape_f($this->uid).'))', array('dn'));
     while ($attrs = $ldap->fetch()) {
       $this->groups[$attrs['dn']] = $attrs['dn'];
@@ -202,7 +208,7 @@ class userinfo
       }
     }
 
-    /* Create an array which represenet all relevant permissions settings
+    /* Create an array which represent all relevant permissions settings
         per dn.
 
       The array will look like this:
diff --git a/include/select/userGroupSelect/class_userGroupSelect.inc b/include/select/userGroupSelect/class_userGroupSelect.inc
index e1c95f75db443012889e7fb742400168ca77716a..b3941a2b0606e31d617b61066453a44ae4b7f2f4 100644
--- a/include/select/userGroupSelect/class_userGroupSelect.inc
+++ b/include/select/userGroupSelect/class_userGroupSelect.inc
@@ -26,6 +26,6 @@ class userGroupSelect extends userSelect
 
 class userGroupRoleSelect extends userGroupSelect
 {
-  protected $objectTypes = array('user', 'group', 'role');
+  protected $objectTypes = array('user', 'group', 'role', 'ogroup');
 }
 ?>
diff --git a/include/simpleplugin/class_dialogAttributes.inc b/include/simpleplugin/class_dialogAttributes.inc
index cf68f02ec98e09960d82c509830534df75377df3..eedfeeb43aa4b1358980153c676d3b02809be5eb 100644
--- a/include/simpleplugin/class_dialogAttributes.inc
+++ b/include/simpleplugin/class_dialogAttributes.inc
@@ -412,9 +412,11 @@ class UsersGroupsAttribute extends GenericDialogAttribute
       if ($this->display_attr == 'dn') {
         $this->displays[$i] = $attrs['dn'];
       } elseif (in_array('posixGroup', $attrs['objectClass'])) {
-        $this->displays[$i] = sprintf(_('Group %s'), trim($attrs['cn'][0]));
+        $this->displays[$i] = sprintf(_('POSIX group %s'), trim($attrs['cn'][0]));
       } elseif (in_array('organizationalRole', $attrs['objectClass'])) {
         $this->displays[$i] = sprintf(_('Role %s'), trim($attrs['cn'][0]));
+      } elseif (in_array('groupOfNames', $attrs['objectClass'])) {
+        $this->displays[$i] = sprintf(_('Group %s'), trim($attrs['cn'][0]));
       } elseif (isset($attrs['uid'][0])) {
         $this->displays[$i] = trim($attrs['uid'][0]);
       } else {