diff --git a/opentech/apply/activity/messaging.py b/opentech/apply/activity/messaging.py
index 77a92b8a16b2f443a484d2983477f9ff8ef38e0a..57a31e798777408e27d46da929c214689c6ad09f 100644
--- a/opentech/apply/activity/messaging.py
+++ b/opentech/apply/activity/messaging.py
@@ -1,5 +1,6 @@
 import json
 import requests
+import logging
 from collections import defaultdict
 
 from django.db import models
@@ -13,7 +14,7 @@ from .models import TEAM, ALL
 from .options import MESSAGES
 from .tasks import send_mail
 
-
+logger = logging.getLogger(__name__)
 User = get_user_model()
 
 
@@ -144,6 +145,12 @@ class AdapterBase:
         self.process_send(message_type, recipients, [event], request, user, source, related=related, **kwargs)
 
     def process_send(self, message_type, recipients, events, request, user, source, sources=list(), related=None, **kwargs):
+        try:
+            # If this was a batch action we want to pull out the submission
+            source = sources[0]
+        except IndexError:
+            pass
+
         kwargs = {
             'request': request,
             'user': user,
@@ -335,12 +342,6 @@ class ActivityAdapter(AdapterBase):
         from .models import Activity
         visibility = kwargs.get('visibility', ALL)
 
-        try:
-            # If this was a batch action we want to pull out the submission
-            source = sources[0]
-        except IndexError:
-            pass
-
         related = kwargs['related']
         if isinstance(related, dict):
             try:
@@ -776,6 +777,9 @@ class EmailAdapter(AdapterBase):
             from_email = source.page.specific.from_address
         except AttributeError:  # we're dealing with a project
             from_email = source.submission.page.specific.from_address
+        except Exception as e:
+            from_email = None
+            logger.exception(e)
 
         try:
             send_mail(
diff --git a/opentech/apply/determinations/tests/test_views.py b/opentech/apply/determinations/tests/test_views.py
index 6632d606b611b70b80c83b63d62bf2be500e1842..a09bfbebdfe94a67ca7ad2f893e0c87c5d7fa37b 100644
--- a/opentech/apply/determinations/tests/test_views.py
+++ b/opentech/apply/determinations/tests/test_views.py
@@ -6,7 +6,7 @@ from django.test import override_settings, RequestFactory
 from django.urls import reverse_lazy
 
 from opentech.apply.activity.models import Activity
-from opentech.apply.determinations.models import ACCEPTED, REJECTED
+from opentech.apply.determinations.models import ACCEPTED, REJECTED, NEEDS_MORE_INFO
 from opentech.apply.determinations.views import BatchDeterminationCreateView
 from opentech.apply.users.tests.factories import StaffFactory, UserFactory
 from opentech.apply.funds.models import ApplicationSubmission
@@ -361,6 +361,28 @@ class BatchDeterminationTestCase(BaseViewTestCase):
 
         self.assertRedirects(response, self.url_from_pattern('apply:submissions:list'))
 
+    def test_can_submit_batch_determination_more_info_comment(self):
+        submissions = ApplicationSubmissionFactory.create_batch(4)
+
+        url = self.url(None) + '?submissions=' + ','.join([str(submission.id) for submission in submissions]) + '&action=more_info'
+        data = {
+            'submissions': [submission.id for submission in submissions],
+            'data': 'some data',
+            'outcome': NEEDS_MORE_INFO,
+            'message': 'More Info',
+            'author': self.user.id,
+        }
+
+        response = self.client.post(url, data, secure=True, follow=True)
+
+        for submission in submissions:
+            submission = self.refresh(submission)
+            self.assertEqual(submission.status, 'more_info')
+            self.assertEqual(submission.determinations.count(), 1)
+            self.assertEqual(submission.activities.comments().count(), 1)
+
+        self.assertRedirects(response, self.url_from_pattern('apply:submissions:list'))
+
     def test_sets_next_on_redirect(self):
         test_path = '/a/path/?with=query&a=sting'
         request = RequestFactory().get('', PATH_INFO=test_path)
diff --git a/opentech/apply/determinations/views.py b/opentech/apply/determinations/views.py
index 426096a1fe9393ab5088ca155ca8410992285ed5..f322fe290b57e6e69437b8d083b61cbbffc7d9b4 100644
--- a/opentech/apply/determinations/views.py
+++ b/opentech/apply/determinations/views.py
@@ -142,7 +142,7 @@ class BatchDeterminationCreateView(CreateView):
                         message=determination.stripped_message,
                         timestamp=timezone.now(),
                         user=self.request.user,
-                        submission=submission,
+                        source=submission,
                         related_object=determination,
                     )