Index: /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/applicants/browser.py
===================================================================
--- /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/applicants/browser.py	(revision 16219)
+++ /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/applicants/browser.py	(revision 16220)
@@ -203,24 +203,33 @@
         yield(dict(code=cert.code, title=title, selected=selected))
 
-def saveCourses(view, changed_fields=[]):
+def saveCourses(view):
     """In custom packages we needed to customize the certificate
     select widget. We just save course1 and course2 if these customized
     fields appear in the form.
     """
+    changed_courses = []
     form = view.request.form
     course1 = form.get('custom.course1', None)
+    if not course1:
+        return 'Please select your 1st Choice Course of Study.', None
+    cat = queryUtility(ICatalog, name='certificates_catalog')
+    results = list(
+        cat.searchResults(code=(course1, course1)))
+    new_course1 = results[0]
+    old_course1 = view.context.course1
+    if old_course1 != new_course1:
+        view.context.course1 = new_course1
+        changed_courses.append('course1')
+    new_course2 = None
+    old_course2 = view.context.course2
     course2 = form.get('custom.course2', None)
-    cat = queryUtility(ICatalog, name='certificates_catalog')
-    if course1:
-        results = list(
-            cat.searchResults(code=(course1, course1)))
-        view.context.course1 = results[0]
-        changed_fields.append('course1')
     if course2:
         results = list(
             cat.searchResults(code=(course2, course2)))
-        view.context.course2 = results[0]
-        changed_fields.append('course2')
-    return changed_fields
+        new_course2 = results[0]
+    if old_course2 != new_course2:
+        view.context.course2 = new_course2
+        changed_courses.append('course2')
+    return None, changed_courses
 
 def display_fileupload(view, filename):
@@ -247,6 +256,6 @@
         return getCerts(self, coursex)
 
-    def saveCourses(self, changed_fields):
-        return saveCourses(self, changed_fields)
+    def saveCourses(self):
+        return saveCourses(self)
 
     def display_fileupload(self, filename):
Index: /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/applicants/tests/test_browser.py
===================================================================
--- /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/applicants/tests/test_browser.py	(revision 16219)
+++ /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/applicants/tests/test_browser.py	(revision 16220)
@@ -90,5 +90,4 @@
         self.browser.getControl(name="form.middlename").value = 'Anthony'
         self.browser.getControl(name="form.lastname").value = 'Tester'
-        self.browser.getControl(name="custom.course1").value = ['CERT1']
         self.browser.getControl(name="form.date_of_birth").value = '09/09/1988'
         self.browser.getControl(name="form.sex").value = ['m']
@@ -101,4 +100,9 @@
         self.assertEqual(self.browser.headers['Status'], '200 Ok')
         self.fill_correct_values()
+        self.browser.getControl(name="custom.course1").value = ['']
+        self.browser.getControl("Save").click()
+        self.assertTrue('Please select your 1st Choice Course of Study.'
+            in self.browser.contents)
+        self.browser.getControl(name="custom.course1").value = ['CERT1']
         self.browser.getControl("Save").click()
         self.assertEqual(self.applicant.course1, self.certificate)
@@ -113,5 +117,5 @@
         open(path, 'wb').write(self.browser.contents)
         print "Sample application_slip.pdf written to %s" % path
-        # Log entries have been added
+        # Log entries have been added (course1 is missing because it was already stored)
         logfile = os.path.join(
             self.app['datacenter'].storage, 'logs', 'applicants.log')
@@ -120,5 +124,5 @@
             'zope.mgr - kofacustom.iuokada.applicants.browser.CustomApplicantManageFormPage - '
             '%s - saved: firstname + middlename + lastname + date_of_birth '
-            '+ sex + email + course1'
+            '+ sex + email'
             % (self.applicant.applicant_id)
             in logcontent)
