Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 8853)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 8854)
@@ -1927,5 +1927,5 @@
     grok.template('requestpw')
     form_fields = grok.AutoFields(IStudentRequestPW).select(
-        'firstname','reg_number','email')
+        'firstname','number','email')
     label = _('Request password for first-time login')
 
@@ -1948,5 +1948,5 @@
         return True
 
-    @action(_('Get login credentials'), style='primary')
+    @action(_('Send login credentials to email address'), style='primary')
     def get_credentials(self, **data):
         if not self.captcha_result.is_valid:
@@ -1954,9 +1954,12 @@
             # No need to flash something.
             return
-        reg_number = data.get('reg_number','')
+        number = data.get('number','')
         firstname = data.get('firstname','')
         cat = getUtility(ICatalog, name='students_catalog')
         results = list(
-            cat.searchResults(reg_number=(reg_number, reg_number)))
+            cat.searchResults(reg_number=(number, number)))
+        if not results:
+            results = list(
+                cat.searchResults(matric_number=(number, number)))
         if results:
             student = results[0]
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/requestpw.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/requestpw.pt	(revision 8853)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/requestpw.pt	(revision 8854)
@@ -17,6 +17,7 @@
   </table>
   <p i18n:translate="">
-    Your student record will be looked up and an email with your login
-    credentials will be sent to the address provided.
+    Your student record will be looked up and
+    your login credentials will be sent to the email address given above.
+    To be able to proceed you must provide a valid email address!
   </p>
   <div tal:condition="view/availableActions">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py	(revision 8853)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py	(revision 8854)
@@ -289,6 +289,6 @@
     login for the the first time.
     """
-    reg_number = schema.TextLine(
-        title = u'Registration Number',
+    number = schema.TextLine(
+        title = _(u'Registr. or Matric. Number'),
         required = True,
         )
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 8853)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 8854)
@@ -1894,10 +1894,10 @@
 
     def test_request_pw(self):
-        # Student with wrong reg_number can't be found.
+        # Student with wrong number can't be found.
         self.browser.open('http://localhost/app/requestpw')
         self.browser.getControl(name="form.firstname").value = 'Anna'
-        self.browser.getControl(name="form.reg_number").value = 'anynumber'
+        self.browser.getControl(name="form.number").value = 'anynumber'
         self.browser.getControl(name="form.email").value = 'xx@yy.zz'
-        self.browser.getControl("Get login credentials").click()
+        self.browser.getControl("Send login credentials").click()
         self.assertTrue('No student record found.'
             in self.browser.contents)
@@ -1906,7 +1906,7 @@
         self.browser.open('http://localhost/app/requestpw')
         self.browser.getControl(name="form.firstname").value = 'Johnny'
-        self.browser.getControl(name="form.reg_number").value = '123'
+        self.browser.getControl(name="form.number").value = '123'
         self.browser.getControl(name="form.email").value = 'xx@yy.zz'
-        self.browser.getControl("Get login credentials").click()
+        self.browser.getControl("Send login credentials").click()
         self.assertTrue('No student record found.'
             in self.browser.contents)
@@ -1914,6 +1914,6 @@
         # password has been set and used.
         self.browser.getControl(name="form.firstname").value = 'Anna'
-        self.browser.getControl(name="form.reg_number").value = '123'
-        self.browser.getControl("Get login credentials").click()
+        self.browser.getControl(name="form.number").value = '123'
+        self.browser.getControl("Send login credentials").click()
         self.assertTrue('Your password has already been set and used.'
             in self.browser.contents)
@@ -1922,8 +1922,16 @@
         # The firstname field, used for verification, is not case-sensitive.
         self.browser.getControl(name="form.firstname").value = 'aNNa'
-        self.browser.getControl(name="form.reg_number").value = '123'
+        self.browser.getControl(name="form.number").value = '123'
         self.browser.getControl(name="form.email").value = 'new@yy.zz'
-        self.browser.getControl("Get login credentials").click()
+        self.browser.getControl("Send login credentials").click()
         # Yeah, we succeded ...
+        self.assertTrue('Your password request was successful.'
+            in self.browser.contents)
+        # We can also use the matric_number instead.
+        self.browser.open('http://localhost/app/requestpw')
+        self.browser.getControl(name="form.firstname").value = 'aNNa'
+        self.browser.getControl(name="form.number").value = '234'
+        self.browser.getControl(name="form.email").value = 'new@yy.zz'
+        self.browser.getControl("Send login credentials").click()
         self.assertTrue('Your password request was successful.'
             in self.browser.contents)
