diff --git a/core/includes/form.inc b/core/includes/form.inc
index 513615c..e499699 100644
--- a/core/includes/form.inc
+++ b/core/includes/form.inc
@@ -1794,6 +1794,13 @@ function form_builder($form_id, &$element, &$form_state) {
     '#title_display' => 'before',
   );
 
+  // Check to see that a title has been set for form elements that are needed.
+  $no_title_required = array('tableselect', 'vertical_tabs', 'actions', 'button', 'container', 
+    'image_button', 'submit', 'form', 'hidden', 'token', 'markup', 'item', 'value');
+  if (isset($element['#type']) && !in_array($element['#type'], $no_title_required) &&  empty($element['#title'])) {
+    drupal_set_message(t('Titles are required for all form elements.')); 
+  }
+
   // Special handling if we're on the top level form element.
   if (isset($element['#type']) && $element['#type'] == 'form') {
     if (!empty($element['#https']) && variable_get('https', FALSE) &&
