diff --git a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAO.java b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAO.java
index ce7f40f632cc2c85fa49bf8a2e4ac0e06d906655..10a1a174d2087412e4125569a74c315c30138d63 100755
--- a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAO.java
+++ b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAO.java
@@ -535,8 +535,18 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO
                         else if (memberDN.isDescendantOf(config.getGroupsDN(),
                                                          false))
                         {
-                            ldapGroup.getGroupMembers().add(new Group(
-                                memberDN.getRDNString().replace("cn=", "")));
+                            try
+                            {
+                                String memberGroupID = 
+                                        memberDN.getRDNString().replace("cn=", "");
+                                ldapGroup.getGroupMembers().
+                                    add(getGroup(memberGroupID));
+                            }
+                            catch(GroupNotFoundException e)
+                            {
+                                // ignore as we are not cleaning up
+                                // deleted groups from the group members
+                            }
                         }
                         else
                         {
diff --git a/projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAOTest.java b/projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAOTest.java
index 6e44f437e27d8f6928306cce7734e33c6ae15b90..bad3d32ac6ec804357f8bae67f88707fdca8d619 100644
--- a/projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAOTest.java
+++ b/projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAOTest.java
@@ -266,8 +266,24 @@ public class LdapGroupDAOTest extends AbstractLdapDAOTest
                     actualGroup = getGroupDAO().getGroup(expectGroup.getID());
                     assertGroupsEqual(expectGroup, actualGroup);
                     
+                    // create another group and make expected group
+                    // member of that group. Delete expected group after
+                    Group expectGroup2 = new Group(getGroupID(), daoTestUser1);
+                    expectGroup2.getGroupAdmins().add(expectGroup);
+                    expectGroup2.getGroupMembers().add(expectGroup);
+                    Group actualGroup2 = getGroupDAO().addGroup(expectGroup2);
+                    log.debug("addGroup: " + expectGroup2.getID());
+                    assertGroupsEqual(expectGroup2, actualGroup2);
+                    
                     // delete the group
                     getGroupDAO().deleteGroup(expectGroup.getID());
+                    // now expectGroup should not be member of admin of 
+                    // expectGroup2
+                    expectGroup2.getGroupAdmins().remove(expectGroup);
+                    expectGroup2.getGroupMembers().remove(expectGroup);
+                    actualGroup2 = getGroupDAO().getGroup(expectGroup2.getID());
+                    log.debug("addGroup: " + expectGroup2.getID());
+                    assertGroupsEqual(expectGroup2, actualGroup2);
                     
                     return null;
                 }