diff --git a/handlers/views_handler_filter.inc b/handlers/views_handler_filter.inc
index 707c7e2..3a0e2a6 100644
--- a/handlers/views_handler_filter.inc
+++ b/handlers/views_handler_filter.inc
@@ -484,6 +484,11 @@ class views_handler_filter extends views_handler {
       $form['#size'] = NULL;
     }
 
+    // Cleanup in case the translated element's (radios or checkboxes) display value contains html.
+    if ($form['#type'] == 'select') {
+      _views_prepare_options($form['#options']);
+    }
+
     if ($type == 'value' && empty($this->always_required) && empty($this->options['expose']['required']) && $form['#type'] == 'select' && empty($form['#multiple'])) {
       $any_label = variable_get('views_exposed_filter_any_label', 'new_any') == 'old_any' ? t('<Any>') : t('- Any -');
       $form['#options'] = array('All' => $any_label) + $form['#options'];
@@ -666,3 +671,21 @@ class views_handler_filter_broken extends views_handler_filter {
 /**
  * @}
  */
+
+
+/**
+ * Sanitizes the HTML select element's options.
+ *
+ * The function is recursive to support optgroups.
+ */
+function _views_prepare_options(&$options) {
+  foreach ($options as $value => $label) {
+    // Recurse for optgroups.
+    if (is_array($label)) {
+      _views_prepare_options($options[$value]);
+    }
+    else {
+      $options[$value] = decode_entities(strip_tags($label));
+    }
+  }
+}
