diff --git a/legal.admin.inc b/legal.admin.inc
index d011607..bd60b53 100644
--- a/legal.admin.inc
+++ b/legal.admin.inc
@@ -28,9 +28,10 @@ function legal_administration($form_state) {
   $form = array_merge($form, legal_display_fields($conditions));
 
   $form['conditions'] = array(
-    '#type'          => 'textarea',
+    '#type'          => 'text_format',
     '#title'         => t('Terms & Conditions'),
     '#default_value' => $conditions['conditions'],
+    '#format'        => $conditions['format'],
     '#description'   => t('Your Terms & Conditions'),
     '#required'      => TRUE,
   );
@@ -256,7 +257,8 @@ function legal_administration_submit($form, &$form_state) {
       'version'    => $version['version'],
       'revision'   => $version['revision'],
       'language'   => $values['language'],
-      'conditions' => $values['conditions'],
+      'conditions' => $values['conditions']['value'],
+      'format'     => $values['conditions']['format'],
       'date'       => time(),
       'extras'     => serialize($values['extras']),
       'changes'    => $values['changes'],
diff --git a/legal.install b/legal.install
index e7220a6..46d9d88 100644
--- a/legal.install
+++ b/legal.install
@@ -22,6 +22,7 @@ function legal_schema() {
         'default'     => ''
       ),
       'conditions' => array('type' => 'text', 'size' => 'big', 'not null' => TRUE),
+      'format'     => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
       'date'       => array('type' => 'int', 'unsigned' => FALSE, 'not null' => TRUE, 'default' => 0, 'disp-width' => 11),
       'extras'     => array('type' => 'text'),
       'changes'    => array('type' => 'text'),
@@ -64,3 +65,10 @@ function legal_uninstall() {
 function legal_update_last_removed() {
   return 6003;
 }
+
+/**
+ * Add 'format' field to 'legal_conditions' table.
+ */
+function legal_update_7100() {
+  db_add_field('legal_conditions', 'format', array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''));
+}
diff --git a/legal.module b/legal.module
index 657f01e..ced51cf 100644
--- a/legal.module
+++ b/legal.module
@@ -694,7 +694,7 @@ function legal_save_accept($version, $revision, $language, $uid) {
 }
 
 function legal_get_conditions($language = NULL) {
-  $keys = array('tc_id', 'version', 'revision', 'language', 'conditions', 'date', 'extras', 'changes');
+  $keys = array('tc_id', 'version', 'revision', 'language', 'conditions', 'format', 'date', 'extras', 'changes');
 
   if (!empty($language)) {
     $result = db_select('legal_conditions', 'lc')
diff --git a/legal.pages.inc b/legal.pages.inc
index 1de1d8b..9cb41f7 100644
--- a/legal.pages.inc
+++ b/legal.pages.inc
@@ -17,7 +17,7 @@ function legal_page() {
     case 1: // CSS Scroll Box with HTML.
     case 2: // HTML.
     case 3: // Page Link.
-      $output = filter_xss_admin($conditions['conditions']);
+      $output = check_markup($conditions['conditions'], $conditions['format']);
       break;
   }
 
