diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py
index 02d9ca587b268f5b9b2b5747796621cf6a44270a..d1417970f752799fbd12819df257b31421c9dc21 100644
--- a/common/djangoapps/student/views.py
+++ b/common/djangoapps/student/views.py
@@ -246,23 +246,25 @@ def get_course_enrollment_pairs(user, course_org_filter, org_filter_out_set):
     a student's dashboard.
     """
     for enrollment in CourseEnrollment.enrollments_for_user(user):
-        course = modulestore().get_course(enrollment.course_id)
-        if course and not isinstance(course, ErrorDescriptor):
-
-            # if we are in a Microsite, then filter out anything that is not
-            # attributed (by ORG) to that Microsite
-            if course_org_filter and course_org_filter != course.location.org:
-                continue
-            # Conversely, if we are not in a Microsite, then let's filter out any enrollments
-            # with courses attributed (by ORG) to Microsites
-            elif course.location.org in org_filter_out_set:
-                continue
-
-            yield (course, enrollment)
-        else:
-            log.error("User {0} enrolled in {2} course {1}".format(
-                user.username, enrollment.course_id, "broken" if course else "non-existent"
-            ))
+        store = modulestore()
+        with store.bulk_operations(enrollment.course_id):
+            course = store.get_course(enrollment.course_id)
+            if course and not isinstance(course, ErrorDescriptor):
+
+                # if we are in a Microsite, then filter out anything that is not
+                # attributed (by ORG) to that Microsite
+                if course_org_filter and course_org_filter != course.location.org:
+                    continue
+                # Conversely, if we are not in a Microsite, then let's filter out any enrollments
+                # with courses attributed (by ORG) to Microsites
+                elif course.location.org in org_filter_out_set:
+                    continue
+
+                yield (course, enrollment)
+            else:
+                log.error("User {0} enrolled in {2} course {1}".format(
+                    user.username, enrollment.course_id, "broken" if course else "non-existent"
+                ))
 
 
 def _cert_info(user, course, cert_status):
diff --git a/lms/djangoapps/courseware/views.py b/lms/djangoapps/courseware/views.py
index 18013af6dc142fdfc6c75d010545156d58ed9950..f92326690a87afca5e91f5ca4ec88d15923e3915 100644
--- a/lms/djangoapps/courseware/views.py
+++ b/lms/djangoapps/courseware/views.py
@@ -559,41 +559,42 @@ def course_info(request, course_id):
 
     course_key = SlashSeparatedCourseKey.from_deprecated_string(course_id)
 
-    course = get_course_with_access(request.user, 'load', course_key)
-    staff_access = has_access(request.user, 'staff', course)
-    masq = setup_masquerade(request, staff_access)    # allow staff to toggle masquerade on info page
-    reverifications = fetch_reverify_banner_info(request, course_key)
-    studio_url = get_studio_url(course, 'course_info')
+    with modulestore().bulk_operations(course_key):
+        course = get_course_with_access(request.user, 'load', course_key)
+        staff_access = has_access(request.user, 'staff', course)
+        masq = setup_masquerade(request, staff_access)    # allow staff to toggle masquerade on info page
+        reverifications = fetch_reverify_banner_info(request, course_key)
+        studio_url = get_studio_url(course, 'course_info')
 
-    # link to where the student should go to enroll in the course:
-    # about page if there is not marketing site, SITE_NAME if there is
-    url_to_enroll = reverse(course_about, args=[course_id])
-    if settings.FEATURES.get('ENABLE_MKTG_SITE'):
-        url_to_enroll = marketing_link('COURSES')
+        # link to where the student should go to enroll in the course:
+        # about page if there is not marketing site, SITE_NAME if there is
+        url_to_enroll = reverse(course_about, args=[course_id])
+        if settings.FEATURES.get('ENABLE_MKTG_SITE'):
+            url_to_enroll = marketing_link('COURSES')
 
-    show_enroll_banner = request.user.is_authenticated() and not CourseEnrollment.is_enrolled(request.user, course.id)
+        show_enroll_banner = request.user.is_authenticated() and not CourseEnrollment.is_enrolled(request.user, course.id)
 
-    context = {
-        'request': request,
-        'course_id': course_key.to_deprecated_string(),
-        'cache': None,
-        'course': course,
-        'staff_access': staff_access,
-        'masquerade': masq,
-        'studio_url': studio_url,
-        'reverifications': reverifications,
-        'show_enroll_banner': show_enroll_banner,
-        'url_to_enroll': url_to_enroll,
-    }
+        context = {
+            'request': request,
+            'course_id': course_key.to_deprecated_string(),
+            'cache': None,
+            'course': course,
+            'staff_access': staff_access,
+            'masquerade': masq,
+            'studio_url': studio_url,
+            'reverifications': reverifications,
+            'show_enroll_banner': show_enroll_banner,
+            'url_to_enroll': url_to_enroll,
+        }
 
-    now = datetime.now(UTC())
-    effective_start = _adjust_start_date_for_beta_testers(request.user, course, course_key)
-    if staff_access and now < effective_start:
-        # Disable student view button if user is staff and
-        # course is not yet visible to students.
-        context['disable_student_access'] = True
+        now = datetime.now(UTC())
+        effective_start = _adjust_start_date_for_beta_testers(request.user, course, course_key)
+        if staff_access and now < effective_start:
+            # Disable student view button if user is staff and
+            # course is not yet visible to students.
+            context['disable_student_access'] = True
 
-    return render_to_response('courseware/info.html', context)
+        return render_to_response('courseware/info.html', context)
 
 
 @ensure_csrf_cookie