diff --git a/includes/form.inc b/includes/form.inc
index 40363d6a738e9b0f373f4f8179898a45a91de928..442016af02681c43d17fab401490dbf1bf850bf5 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -2796,7 +2796,17 @@ function password_confirm_validate($element, &$element_state) {
  */
 function theme_date($variables) {
   $element = $variables['element'];
-  return '<div class="container-inline">' . drupal_render_children($element) . '</div>';
+
+  $attributes = array();
+  if (isset($element['#id'])) {
+    $attributes['id'] = $element['#id'];
+  }
+  if (!empty($element['#attributes']['class'])) {
+    $attributes['class'] = (array) $element['#attributes']['class'];
+  }
+  $attributes['class'][] = 'container-inline';
+
+  return '<div' . drupal_attributes($attributes) . '>' . drupal_render_children($element) . '</div>';
 }
 
 /**
diff --git a/modules/file/file.module b/modules/file/file.module
index 83de0f622aeeade27aec8837420f2d769cf480aa..4fc9985014e77db7c8995485e0006e6ce8632efc 100644
--- a/modules/file/file.module
+++ b/modules/file/file.module
@@ -643,9 +643,18 @@ function file_managed_file_save_upload($element) {
 function theme_file_managed_file($variables) {
   $element = $variables['element'];
 
+  $attributes = array();
+  if (isset($element['#id'])) {
+    $attributes['id'] = $element['#id'];
+  }
+  if (!empty($element['#attributes']['class'])) {
+    $attributes['class'] = (array) $element['#attributes']['class'];
+  }
+  $attributes['class'][] = 'form-managed-file';
+
   // This wrapper is required to apply JS behaviors and CSS styling.
   $output = '';
-  $output .= '<div class="form-managed-file">';
+  $output .= '<div' . drupal_attributes($attributes) . '>';
   $output .= drupal_render_children($element);
   $output .= '</div>';
   return $output;