diff --git a/ctools.module b/ctools.module
index 7b7499e..88e44f9 100644
--- a/ctools.module
+++ b/ctools.module
@@ -439,6 +439,14 @@ function ctools_flush_caches() {
 }
 
 /**
+ * Implements hook_element_info().
+ */
+function ctools_element_info() {
+  ctools_include('elements');
+  return ctools_elements_element_info();
+}
+
+/**
  * Implements hook_element_info_alter().
  *
  */
diff --git a/includes/elements.inc b/includes/elements.inc
new file mode 100644
index 0000000..e0df0ea
--- /dev/null
+++ b/includes/elements.inc
@@ -0,0 +1,61 @@
+<?php
+
+/**
+ * @file
+ * Provide a HTML element select element.
+ */
+
+/**
+ * Implements hook_element_info().
+ */
+function ctools_elements_element_info() {
+  $types['html_element'] = array(
+    '#input' => TRUE,
+    '#process' => array('ctools_elements_html_element_process'),
+    '#autocomplete_path' => FALSE,
+    '#pre_render' => array('ctools_dependent_pre_render'),
+  );
+
+  return $types;
+}
+
+/**
+ * Process callback for the HTML element.
+ */
+function ctools_elements_html_element_process($element, &$form_state, $complete_form) {
+  $element['#tree'] = TRUE;
+
+  $element['element_type'] = array(
+    '#type' => 'select',
+    '#title' => t('HTML element'),
+    //'#value' => $element['#value']['element_type'],
+    '#options' => array(
+      '' => t('- Use default -'),
+      '0' => t('- None -'),
+      'custom' => t('- Custom -'),
+      'div' => t('DIV'),
+      'span' => t('SPAN'),
+      'h1' => t('H1'),
+      'h2' => t('H2'),
+      'h3' => t('H3'),
+      'h4' => t('H4'),
+      'h5' => t('H5'),
+      'h6' => t('H6'),
+      'p' => t('P'),
+      'strong' => t('STRONG'),
+      'em' => t('EM'),
+    ),
+  );
+  $element['element_type_custom'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Custom HTML element'),
+    //'#value' => $element['#value']['element_type_custom'],
+    '#size' => 16,
+    '#maxlength' => 128,
+    '#dependency' => array(
+      $element['#id'] . '-element-type' => array('custom'),
+    ),
+  );
+
+  return $element;
+}
