Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser.py	(revision 12592)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser.py	(revision 12593)
@@ -1393,4 +1393,13 @@
 
     @property
+    def terms_and_conditions(self):
+        lang = self.request.cookies.get('ikoba.language')
+        html = self.context.tc_dict.get(lang,'')
+        if html =='':
+            portal_language = getUtility(IIkobaUtils).PORTAL_LANGUAGE
+            html = self.context.tc_dict.get(portal_language,'')
+        return html
+
+    @property
     def form_fields(self):
         return grok.AutoFields(self.context.form_fields_interface).omit(
@@ -1416,4 +1425,5 @@
     pnav = 4
     deletion_warning = _('Are you sure?')
+    terms_and_conditions = None
 
     @property
@@ -1449,4 +1459,9 @@
     @action(_('Apply now (final submit)'), warning=WARNING_CON)
     def finalsubmit(self, **data):
+        if not self.request.form.get('confirm_tc', False):
+            self.flash(_('Please read the terms and conditions and '
+                     'confirm your acceptance of these by ticking '
+                     'the confirmation box.'), type="danger")
+            return
         msave(self, **data)
         IWorkflowInfo(self.context).fireTransition('submit')
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser_templates/contracteditpage.pt
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser_templates/contracteditpage.pt	(revision 12592)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser_templates/contracteditpage.pt	(revision 12593)
@@ -11,4 +11,17 @@
   <br />
 
+  <tal:tc condition="python: view.terms_and_conditions and view.__name__ == 'edit'">
+    <h4 i18n:domain="waeup.ikoba">
+      <span i18n:translate="">Terms and Conditions</span>
+    </h4>
+    <tal:tc content="structure view/terms_and_conditions" />
+    <br />
+    <input id="confirm_tc" name="confirm_tc" type="checkbox" value="True"/>
+    <span i18n:translate="">
+        I confirm that I have read, understood and accepted the Terms & Conditions.
+    </span>
+   <br /><br />
+  </tal:tc>
+
   <div tal:condition="view/availableActions">
     <input tal:repeat="action view/actions"
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser_templates/contractpage.pt
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser_templates/contractpage.pt	(revision 12592)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser_templates/contractpage.pt	(revision 12593)
@@ -29,7 +29,8 @@
 </table>
 
-<h4 i18n:domain="waeup.ikoba">
-  <span i18n:translate="">Terms and Conditions</span>
-</h4>
-
-<tal:tc content="structure view/terms_and_conditions" />
+<tal:tc condition="view/terms_and_conditions">
+  <h4 i18n:domain="waeup.ikoba">
+    <span i18n:translate="">Terms and Conditions</span>
+  </h4>
+  <tal:tc content="structure view/terms_and_conditions" />
+</tal:tc>
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_browser.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_browser.py	(revision 12592)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_browser.py	(revision 12593)
@@ -1414,6 +1414,11 @@
             '<a href="http://localhost/app/customers/K1000000/documents/DOC1">DOC1 -'
             in self.browser.contents)
-        # Customer can submit the form. The form is also saved.
+        # Customer can submit the form if confirmation box is ticket.
+        # The form is also saved.
         self.browser.getLink("Edit").click()
+        self.browser.getControl("Apply").click()
+        self.assertTrue('confirm your acceptance of these by ticking' in self.browser.contents)
+        self.assertEqual(contract.state, 'created')
+        self.browser.getControl(name="confirm_tc").value = True
         self.browser.getControl("Apply").click()
         self.assertEqual(contract.state, 'submitted')
