diff --git a/webform.module b/webform.module
index a4d339b..9a2b4a6 100644
--- a/webform.module
+++ b/webform.module
@@ -2393,12 +2393,18 @@ function theme_webform_element($element, $value) {
   $output = '<div class="' . implode(' ', $wrapper_classes) . '" id="' . $element['#id'] . '-wrapper">' . "\n";
   $required = !empty($element['#required']) ? '<span class="form-required" title="' . t('This field is required.') . '">*</span>' : '';
 
+  // Remove the #id property if there are multiple child elements to prevent the
+  // label from being including a "for" attribute to a non-existant field.
+  if (count(element_children($element))) {
+    unset($variables['element']['#id']);
+  }
+
   if (!empty($element['#title'])) {
     $title = $element['#title'];
-    $output .= ' <label for="' . $element['#id'] . '">' . t('!title: !required', array('!title' => filter_xss_admin($title), '!required' => $required)) . "</label>\n";
+    $output .= ' <label' . ($element['#id'] ? (' for="' . $element['#id'] . '"') : '') . '>' . t('!title: !required', array('!title' => filter_xss_admin($title), '!required' => $required)) . "</label>\n";
   }
 
-  $output .= '<div id="' . $element['#id'] . '">' . $value . '</div>' . "\n";
+  $output .= '<div' . ($element['#id'] ? (' id="' . $element['#id'] . '"') : '') . '>' . $value . '</div>' . "\n";
 
   if (!empty($element['#description'])) {
     $output .= ' <div class="description">' . $element['#description'] . "</div>\n";
