diff --git a/field-label-format-wrapper.tpl.php b/field-label-format-wrapper.tpl.php
index c1b6b16..a72ccce 100644
--- a/field-label-format-wrapper.tpl.php
+++ b/field-label-format-wrapper.tpl.php
@@ -11,9 +11,11 @@
  * - $field_content: Rendered field HTML content.
  */
 ?>
-<div<?php print $wrapper_attributes; ?>>
-  <<?php print $label_element . $label_attributes; ?>>
-    <?php print $label_text; ?>
-  </<?php print $label_element; ?>>
-  <?php print $field_content; ?>
-</div>
+<?php if (!empty($label_text)) : ?>
+  <div<?php print $wrapper_attributes; ?>>
+    <<?php print $label_element . $label_attributes; ?>>
+      <?php print $label_text; ?>
+    </<?php print $label_element; ?>>
+    <?php print $field_content; ?>
+  </div>
+<?php endif; ?>
diff --git a/field_label_format.module b/field_label_format.module
index 627f8f0..e9e597a 100644
--- a/field_label_format.module
+++ b/field_label_format.module
@@ -196,11 +196,15 @@ function template_preprocess_field_label_format_wrapper(&$variables) {
   if ($format['css_class']) {
     $variables['label_attributes_array']['class'][] = $format['css_class'];
   }
-  if (strlen($format['override_label'])) {
-    $variables['label_text'] = $format['override_label'];
-  }
-  else {
-    $variables['label_text'] = $variables['element']['#title'];
+  // Label text should be hidden when the field is empty.
+  $variables['label_text'] = '';
+  if (!empty($variables['element']['#items'])) {
+    if (strlen($format['override_label'])) {
+      $variables['label_text'] = $format['override_label'];
+    }
+    else {
+      $variables['label_text'] = $variables['element']['#title'];
+    }
   }
 }
 
