Index: /main/waeup.kofa/trunk/CHANGES.txt
===================================================================
--- /main/waeup.kofa/trunk/CHANGES.txt	(revision 14647)
+++ /main/waeup.kofa/trunk/CHANGES.txt	(revision 14648)
@@ -4,4 +4,6 @@
 1.6.dev0 (unreleased)
 =======================
+
+* Redirect to manage page after editing of certificate courses.
 
 * Add `course_category` attribute to course tickets. In the base package,
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py	(revision 14647)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py	(revision 14648)
@@ -2577,6 +2577,6 @@
     doclink = DOCLINK + '/academics.html#certificate-courses'
 
-    @action(_('Save and return'), style='primary')
-    def saveAndReturn(self, **data):
+    @action(_('Save'), style='primary')
+    def save(self, **data):
         parent = self.context.__parent__
         if self.context.level == data['level']:
@@ -2587,5 +2587,10 @@
             old_level = self.context.level
             data['course'] = self.context.course
-            parent.addCertCourse(**data)
+            try:
+                parent.addCertCourse(**data)
+            except KeyError:
+                self.flash(_('The chosen certificate course is already '
+                             'part of this certificate.'), type='warning')
+                return
             parent.delCertCourses(data['course'].code, level=old_level)
             self.flash(_('Form has been saved.'))
@@ -2595,5 +2600,6 @@
             grok.getSite().logger.info(
                 '%s - renamed: %s to %s' % (ob_class, old_code, new_code))
-        self.redirect(self.url(parent))
+            self.redirect(self.url(parent) + '/%s_%s/@@manage' % (
+                data['course'].code, data['level']))
         return
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/doctests/pages.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/doctests/pages.txt	(revision 14647)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/doctests/pages.txt	(revision 14648)
@@ -1096,37 +1096,23 @@
 If we just click 'Save and return' nothing will change:
 
-  >>> browser.getControl("Save and return").click()
-  >>> browser.getLink('COURSE1_100').click()
+  >>> browser.getControl("Save").click()
   >>> browser.url
-  'http://localhost/myun.../TF/TD/certificates/CERT1/COURSE1_100'
-
-Let's set a new level (it was 100 before) and save the form. This will
-bring us to the certificate index page afterwards:
-
-  >>> browser.open(cert_url + '/COURSE1_100/manage')
+  'http://localhost/myun.../TF/TD/certificates/CERT1/COURSE1_100/@@manage'
+
+Let's set a new level (it was 100 before) and save the form. The entire
+certificate course will be replaced and we will be redirected to manage
+page afterwards:
+
   >>> browser.getControl(name='form.level').value = ['200']
-  >>> browser.getControl("Save and return").click()
-
-As we changed the level, also the URL will change:
-
-  >>> browser.getLink('COURSE1_200').click()
+  >>> browser.getControl("Save").click()
+  >>> browser.url
+  'http://localhost/myun.../TF/TD/certificates/CERT1/COURSE1_200/@@manage'
+
+Nothing will be changed if click ``Cancel``:
+
+  >>> browser.getControl(name='form.level').value = ['400']
+  >>> browser.getControl('Cancel').click()
   >>> browser.url
   'http://localhost/myun.../TF/TD/certificates/CERT1/COURSE1_200'
-
-If we go to the settings page and click ``Cancel`` nothing will be
-changed:
-
-  >>> browser.getLink('Edit certificate course').click()
-  >>> browser.getControl(name='form.level').value = ['400']
-  >>> browser.getControl('Cancel').click()
-
-Our certcourse provides a new level of 200 and not 400:
-
-  >>> browser.open(cert_url + '/COURSE1_200')
-  >>> print browser.contents
-  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  ...<td>Level:</td>
-  ...<td>200 (Year 2)</td>
-  ...
 
 Searching certificate courses
