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 e09dfdce09a84ddb0e20b12fd4fd7f95f3b32024..70ee0595f868c4805fda36310ff6cbd9b9278a5b 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
@@ -231,11 +231,12 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO
         }
         for (Group groupMember : groups)
         {
-            if (!checkGroupExists(groupID))
+            final String groupMemberID = groupMember.getID();
+            if (!checkGroupExists(groupMemberID))
             {
-                throw new GroupNotFoundException(groupID);
+                throw new GroupNotFoundException(groupMemberID);
             }
-            DN memberDN = getGroupDN(groupMember.getID());
+            DN memberDN = getGroupDN(groupMemberID);
             members.add(memberDN.toNormalizedString());
         }
         if (!members.isEmpty())
@@ -480,14 +481,13 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO
                 throw new GroupNotFoundException(groupID);
             }
             
-            if (searchEntry.getAttributeValueAsDN("owner") == null)
+            DN groupOwner = searchEntry.getAttributeValueAsDN("owner");
+            if (groupOwner == null)
             {
                 //TODO assume user not allowed to read group
                 throw new AccessControlException(groupID);
             }
             
-            DN groupOwner = searchEntry.getAttributeValueAsDN("owner");
-            
             User<X500Principal> owner;
             try
             {
diff --git a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/GroupsAction.java b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/GroupsAction.java
index 95c16dd61f701e570a0c95b67424926b3ab6e068..40b01cc12243c3d0909dfe7e933a1b1946b25d97 100755
--- a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/GroupsAction.java
+++ b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/GroupsAction.java
@@ -77,7 +77,6 @@ import java.security.PrivilegedExceptionAction;
 import java.util.List;
 
 import javax.security.auth.Subject;
-import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.log4j.Logger;
@@ -143,56 +142,56 @@ public abstract class GroupsAction
         }
         catch (AccessControlException e)
         {
-            log.debug(e);
+            log.debug("Permission denied", e);
             String message = "Permission Denied";
             this.logInfo.setMessage(message);
             sendError(403, message);
         }
         catch (IllegalArgumentException e)
         {
-            log.debug(e);
+            log.debug("Illegal argument", e);
             String message = e.getMessage();
             this.logInfo.setMessage(message);
             sendError(400, message);
         }
         catch (MemberNotFoundException e)
         {
-            log.debug(e);
+            log.debug("Member Not Found", e);
             String message = "Member not found: " + e.getMessage();
             this.logInfo.setMessage(message);
             sendError(404, message);
         }
         catch (GroupNotFoundException e)
         {
-            log.debug(e);
+            log.debug("Group not found", e);
             String message = "Group not found: " + e.getMessage();
             this.logInfo.setMessage(message);
             sendError(404, message);
         }
         catch (UserNotFoundException e)
         {
-            log.debug(e);
+            log.debug("User Not Found", e);
             String message = "User not found: " + e.getMessage();
             this.logInfo.setMessage(message);
             sendError(404, message);
         }
         catch (MemberAlreadyExistsException e)
         {
-            log.debug(e);
+            log.debug("Member Already Exists", e);
             String message = "Member already exists: " + e.getMessage();
             this.logInfo.setMessage(message);
             sendError(409, message);
         }
         catch (GroupAlreadyExistsException e)
         {
-            log.debug(e);
+            log.debug("Group Already Exists", e);
             String message = "Group already exists: " + e.getMessage();
             this.logInfo.setMessage(message);
             sendError(409, message);
         }
         catch (UnsupportedOperationException e)
         {
-            log.debug(e);
+            log.debug("Unsupported Operation", e);
             this.logInfo.setMessage("Not yet implemented.");
             sendError(501);
         }
diff --git a/projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/GetGroupNamesActionTest.java b/projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/GetGroupNamesActionTest.java
index 6b0aef44c8ef9883b576ea65cebd8f85aff596b0..0cb59383950ce877c3c5c88a4ee1da506adecce7 100644
--- a/projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/GetGroupNamesActionTest.java
+++ b/projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/GetGroupNamesActionTest.java
@@ -70,6 +70,8 @@ package ca.nrc.cadc.ac.server.web;
 
 import ca.nrc.cadc.ac.server.GroupPersistence;
 import ca.nrc.cadc.util.Log4jInit;
+import ca.nrc.cadc.uws.server.SyncOutput;
+
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.easymock.EasyMock;
@@ -122,6 +124,11 @@ public class GetGroupNamesActionTest
             mockWriter.write("\n");
             EasyMock.expectLastCall();
 
+            final SyncOutput mockSyncOutput =
+                    EasyMock.createMock(SyncOutput.class);
+
+            mockSyncOutput.setHeader("Content-Type", "text/csv");
+
             final HttpServletResponse mockResponse = EasyMock.createMock(HttpServletResponse.class);
             mockResponse.setContentType("text/csv");
             EasyMock.expectLastCall();
@@ -133,16 +140,11 @@ public class GetGroupNamesActionTest
 
             GetGroupNamesAction action = new GetGroupNamesAction(mockLog)
             {
-//                @Override
-//                <T extends Principal> GroupPersistence<T> getGroupPersistence()
-//                {
-//                    return mockPersistence;
-//                };
-//
-//                protected HttpServletResponse getHttpServletResponse()
-//                {
-//                    return mockResponse;
-//                }
+                @Override
+                <T extends Principal> GroupPersistence<T> getGroupPersistence()
+                {
+                    return mockPersistence;
+                };
             };
 
             action.run();
diff --git a/projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java
index 1515d37e34a7dbcf32e945872a2c4135aec483d8..425b25f4bd0227f7de0775315b07636ec847a75d 100755
--- a/projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java
+++ b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/client/GMSClient.java
@@ -68,7 +68,10 @@
  */
 package ca.nrc.cadc.ac.client;
 
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -101,7 +104,11 @@ import ca.nrc.cadc.ac.Role;
 import ca.nrc.cadc.ac.UserNotFoundException;
 import ca.nrc.cadc.auth.AuthenticationUtil;
 import ca.nrc.cadc.auth.SSLUtil;
-import ca.nrc.cadc.net.*;
+import ca.nrc.cadc.net.HttpDownload;
+import ca.nrc.cadc.net.HttpPost;
+import ca.nrc.cadc.net.HttpUpload;
+import ca.nrc.cadc.net.InputStreamWrapper;
+import ca.nrc.cadc.net.NetUtil;
 
 import com.csvreader.CsvReader;
 
@@ -258,7 +265,7 @@ public class GMSClient
         Throwable error = transfer.getThrowable();
         if (error != null)
         {
-            log.debug("getGroup throwable", error);
+            log.debug("getGroup throwable (" + transfer.getResponseCode() + ")", error);
             // transfer returns a -1 code for anonymous access.
             if ((transfer.getResponseCode() == -1) || 
                 (transfer.getResponseCode() == 401) ||