Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py	(revision 6749)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py	(revision 6750)
@@ -548,5 +548,5 @@
     grok.require('waeup.handleStudent')
     form_fields = grok.AutoFields(IStudentBaseEdit).omit(
-        'student_id', 'reg_number')
+        'student_id', 'reg_number', 'matric_number')
     grok.template('baseeditpage')
     label = 'Change password'
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/containerpage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/containerpage.pt	(revision 6749)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/containerpage.pt	(revision 6750)
@@ -23,15 +23,24 @@
     <table class="display dataTableManage">
       <thead>
-    	<tr>
-    	  <th>Student Id</th><th>Name</th>
-    	</tr>
+      <tr>
+        <th>Student Id</th>
+        <th>Registration Number</th>
+        <th>Matriculation Number</th>
+        <th>Name</th>
+      </tr>
       </thead>
       <tbody>
-    	<tr tal:repeat="item view/hitlist">
-    	  <td> <a tal:attributes="href item/url">
+      <tr tal:repeat="item view/hitlist">
+        <td> <a tal:attributes="href item/url">
           <span tal:content="item/student_id">A123456</span></a>
         </td>
-    	  <td tal:content="item/name">Bob</td>
-    	</tr>
+        <td> <a tal:attributes="href item/url">
+          <span tal:content="item/reg_number">9999999</span></a>
+        </td>
+        <td> <a tal:attributes="href item/url">
+          <span tal:content="item/matric_number">9999999</span></a>
+        </td>
+        <td tal:content="item/name">Bob</td>
+      </tr>
       </tbody>
     </table>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/catalog.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/catalog.py	(revision 6749)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/catalog.py	(revision 6750)
@@ -6,4 +6,5 @@
 from hurry.query.query import Query
 from zope.index.text.parsetree import ParseError
+from waeup.sirp.index import UniqueField
 from waeup.sirp.interfaces import IUniversity, IQueryResultItem
 from waeup.sirp.students.interfaces import IStudent
@@ -18,5 +19,6 @@
     student_id = index.Field(attribute='student_id')
     name = index.Text(attribute='name')
-    reg_number = index.Field(attribute='reg_number')
+    reg_number = UniqueField(attribute='reg_number')
+    matric_number = UniqueField(attribute='matric_number')
     state = index.Field(attribute='state')
 
@@ -33,4 +35,5 @@
         self.name = context.name
         self.reg_number = context.reg_number
+        self.matric_number = context.matric_number
         self.state = context.state
 
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py	(revision 6749)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py	(revision 6750)
@@ -86,4 +86,11 @@
         default = u'',
         required = True,
+        readonly = False,
+        )
+
+    matric_number = schema.TextLine(
+        title = u'Matriculation Number',
+        default = u'',
+        required = False,
         readonly = False,
         )
Index: /main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py	(revision 6749)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py	(revision 6750)
@@ -34,7 +34,6 @@
 from hurry.workflow.interfaces import IWorkflowInfo
 from waeup.sirp.testing import (
-    FunctionalLayer, FunctionalTestCase, remove_logger,
-    remove_new_loggers,
-    )
+    FunctionalLayer, FunctionalTestCase, remove_new_loggers,
+   )
 from waeup.sirp.app import University
 from waeup.sirp.students.container import StudentsContainer
@@ -78,4 +77,6 @@
         student = Student()
         student.name = u'Anna Tester'
+        student.reg_number = u'123'
+        student.matric_number = u'234'
         self.test_student_id = self.app['students'].addStudent(student)
         # Set password
@@ -164,4 +165,11 @@
         self.browser.getControl("Create student record").click()
         self.assertTrue('Student record created' in self.browser.contents)
+
+        # Registration numbers must be unique
+        self.browser.getLink("Manage").click()
+        self.browser.getControl(name="form.reg_number").value = '123'
+        self.browser.getControl("Save").click()
+        self.assertMatches('...value already exists in catalog...',
+                           self.browser.contents)
 
         self.browser.open(self.container_path)
