diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java
index 9791f5189febf7bbe565e3aed85817650b834fa0..fbbb147ec859bce19d69199889aaeb5e941264b7 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java
@@ -101,8 +101,7 @@ public class ProcessAccessRequest extends SecureAction {
 		    try {
             	XDAT.getMailService().sendHtmlMessage(from, other.getEmail(), user.getEmail(), XDAT.getSiteConfigPreferences().getAdminEmail(), subject, message);
 		    } catch (Exception e) {
-		        logger.error("Unable to send mail",e);
-		        throw e;
+		        logger.error("Unable to send denial email",e);
 		    }
 		}
 
@@ -151,7 +150,7 @@ public class ProcessAccessRequest extends SecureAction {
         	}
 
 			try {				
-				for (Map.Entry<String, UserGroupI> entry:Groups.getGroupsForUser(user).entrySet()){
+				for (Map.Entry<String, UserGroupI> entry:Groups.getGroupsForUser(other).entrySet()){
 				    if (entry.getValue()!=null && entry.getValue().getTag()!=null && entry.getValue().getTag().equals(project.getId())){
 				    	Groups.removeUserFromGroup(other, user, entry.getValue().getId(), c);
 				    }
@@ -197,12 +196,23 @@ public class ProcessAccessRequest extends SecureAction {
         template.merge(context,sw);
         String message= sw.toString();
 
-        try {
-        	XDAT.getMailService().sendHtmlMessage(from, to, cc, bcc, subject, message);
-        } catch (Exception e) {
-            logger.error("Unable to send mail",e);
-            throw e;
-        }
+		try {
+			XDAT.getMailService().sendHtmlMessage(from, to, cc, bcc, subject, message);
+		} catch (Exception exception) {
+			logger.error("Send failed. Retrying by sending each email individually.", exception);
+			int successfulSends = 0;
+			for (String recipient : to) {
+				try {
+					XDAT.getMailService().sendHtmlMessage(from, new String[]{recipient}, null, bcc, subject, message);
+					successfulSends++;
+				} catch (Exception e) {
+					logger.error("Unable to send mail to " + recipient + ".", e);
+				}
+			}
+			if (successfulSends == 0) {
+				logger.error("Unable to send mail", exception);
+			}
+		}
     }
 
     /* (non-Javadoc)
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/RequestAccess.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/RequestAccess.java
index a769213b7db1808663707e604ff8c035f50c5e81..602fb4c09e27a5e43ce62782eaa29b57086b7c37 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/RequestAccess.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/RequestAccess.java
@@ -10,11 +10,6 @@
  */
 package org.nrg.xnat.turbine.modules.actions;
 
-import java.io.StringWriter;
-import java.util.ArrayList;
-
-import javax.mail.MessagingException;
-
 import org.apache.log4j.Logger;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.Template;
@@ -24,12 +19,14 @@ import org.nrg.xdat.XDAT;
 import org.nrg.xdat.display.DisplayManager;
 import org.nrg.xdat.om.XnatProjectdata;
 import org.nrg.xdat.turbine.modules.actions.SecureAction;
-import org.nrg.xdat.turbine.utils.AdminUtils;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.security.UserI;
 import org.nrg.xnat.turbine.utils.ArcSpecManager;
 import org.nrg.xnat.turbine.utils.ProjectAccessRequest;
 
+import java.io.StringWriter;
+import java.util.ArrayList;
+
 public class RequestAccess extends SecureAction {
     static Logger logger = Logger.getLogger(RequestAccess.class);
 
@@ -74,7 +71,7 @@ public class RequestAccess extends SecureAction {
             throw exception;
 		}
 
-		String[] to = null;
+		String[] to = {};
         if (ownerEmails != null && ownerEmails.size() > 0) {
         	to = ownerEmails.toArray(new String[ownerEmails.size()]);
         }
@@ -89,11 +86,22 @@ public class RequestAccess extends SecureAction {
 
         try {
 			XDAT.getMailService().sendHtmlMessage(from, to, null, bcc, subject, message);
-		} catch (MessagingException exception) {
-            logger.error("Unable to send mail", exception);
-            throw exception;
+        } catch (Exception exception) {
+            logger.error("Send failed. Retrying by sending each email individually.", exception);
+            int successfulSends = 0;
+            for (String recipient : to) {
+                try {
+                    XDAT.getMailService().sendHtmlMessage(from, new String[]{recipient}, null, bcc, subject, message);
+                    successfulSends++;
+                } catch (Exception e) {
+                    logger.error("Unable to send mail to " + recipient + ".", e);
+                }
+            }
+            if (successfulSends == 0) {
+                logger.error("Unable to send mail", exception);
+            }
         }
-        
+
         data.setMessage("Access request sent.");
         data.setScreenTemplate("Index.vm");
     }