diff --git a/openedx/core/djangoapps/programs/tests/test_utils.py b/openedx/core/djangoapps/programs/tests/test_utils.py
index 0ec5f773d075018d88da5b3e2d5c2f721dda0f03..41d493f8860798fff48740f52fc8b6628d5f54cf 100644
--- a/openedx/core/djangoapps/programs/tests/test_utils.py
+++ b/openedx/core/djangoapps/programs/tests/test_utils.py
@@ -11,6 +11,7 @@ import mock
 from nose.plugins.attrib import attr
 from pytz import utc
 
+from course_modes.models import CourseMode
 from lms.djangoapps.certificates.api import MODES
 from lms.djangoapps.commerce.tests.test_utils import update_commerce_config
 from openedx.core.djangoapps.catalog.tests.factories import (
@@ -151,6 +152,42 @@ class TestProgramProgressMeter(TestCase):
 
         self.assertEqual(meter.progress(count_only=False), expected)
 
+    def test_no_id_professional_in_progress(self, mock_get_programs):
+        """
+        Verify that the progress meter treats no-id-professional enrollments
+        as professional.
+        """
+        course_run_key = generate_course_run_key()
+        data = [
+            ProgramFactory(
+                courses=[
+                    CourseFactory(course_runs=[
+                        CourseRunFactory(key=course_run_key, type=CourseMode.PROFESSIONAL),
+                    ]),
+                ]
+            )
+        ]
+        mock_get_programs.return_value = data
+
+        CourseEnrollmentFactory(
+            user=self.user, course_id=course_run_key,
+            mode=CourseMode.NO_ID_PROFESSIONAL_MODE
+        )
+
+        meter = ProgramProgressMeter(self.user)
+
+        program = data[0]
+        expected = [
+            ProgressFactory(
+                uuid=program['uuid'],
+                completed=[],
+                in_progress=[program['courses'][0]],
+                not_started=[]
+            )
+        ]
+
+        self.assertEqual(meter.progress(count_only=False), expected)
+
     @ddt.data(1, -1)
     def test_in_progress_course_upgrade_deadline_check(self, modifier, mock_get_programs):
         """
diff --git a/openedx/core/djangoapps/programs/utils.py b/openedx/core/djangoapps/programs/utils.py
index 4bf2664d595af8decf3d0db8ba809adc6462c7e2..ec4b99125f69deae844a2dcdba1bd68073c67eff 100644
--- a/openedx/core/djangoapps/programs/utils.py
+++ b/openedx/core/djangoapps/programs/utils.py
@@ -75,7 +75,10 @@ class ProgramProgressMeter(object):
         for enrollment in self.enrollments:
             # enrollment.course_id is really a CourseKey (╯ಠ_ಠ)╯︵ ┻━┻
             enrollment_id = unicode(enrollment.course_id)
-            self.enrolled_run_modes[enrollment_id] = enrollment.mode
+            mode = enrollment.mode
+            if mode == CourseMode.NO_ID_PROFESSIONAL_MODE:
+                mode = CourseMode.PROFESSIONAL
+            self.enrolled_run_modes[enrollment_id] = mode
             # We can't use dict.keys() for this because the course run ids need to be ordered
             self.course_run_ids.append(enrollment_id)