diff --git a/core/includes/form.inc b/core/includes/form.inc
index d602d54..7baeecb 100644
--- a/core/includes/form.inc
+++ b/core/includes/form.inc
@@ -2993,33 +2993,6 @@ function form_pre_render_radio($element) {
 }
 
 /**
- * Returns HTML for a set of radio button form elements.
- *
- * @param $variables
- *   An associative array containing:
- *   - element: An associative array containing the properties of the element.
- *     Properties used: #title, #value, #options, #description, #required,
- *     #attributes, #children.
- *
- * @ingroup themeable
- */
-function theme_radios($variables) {
-  $element = $variables['element'];
-  $attributes = array();
-  if (isset($element['#id'])) {
-    $attributes['id'] = $element['#id'];
-  }
-  $attributes['class'] = 'form-radios';
-  if (!empty($element['#attributes']['class'])) {
-    $attributes['class'] .= ' ' . implode(' ', $element['#attributes']['class']);
-  }
-  if (isset($element['#attributes']['title'])) {
-    $attributes['title'] = $element['#attributes']['title'];
-  }
-  return '<div' . new Attribute($attributes) . '>' . (!empty($element['#children']) ? $element['#children'] : '') . '</div>';
-}
-
-/**
  * Expand a password_confirm field into two text boxes.
  */
 function form_process_password_confirm($element) {
diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 2a2de1f..25b0ed9 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -2426,15 +2426,29 @@ function theme_container($variables) {
 
   // Special handling for form elements.
   if (isset($element['#array_parents'])) {
+    $attributes = array();
+
+    // Add the 'form-wrapper' and 'form-' . Element type class.
+    $attributes['class'][] = 'form-wrapper';
+    $attributes['class'][] = 'form-' . $element['#type'];
+
     // Assign an html ID.
     if (!isset($element['#attributes']['id'])) {
-      $element['#attributes']['id'] = $element['#id'];
+      $attributes['id'] = $element['#id'];
+    }
+
+    // Pass in any class that might be on the element.
+    if (isset($element['#attributes']['class'])) {
+      $attributes['class'] += $element['#attributes']['class'];
     }
-    // Add the 'form-wrapper' class.
-    $element['#attributes']['class'][] = 'form-wrapper';
   }
 
-  return '<div' . new Attribute($element['#attributes']) . '>' . $element['#children'] . '</div>';
+  // If attributes is not set, just take the attributes from the element.
+  if (!isset($attributes)) {
+    $attributes = $element['#attributes'];
+  }
+
+  return '<div' . new Attribute($attributes) . '>' . $element['#children'] . '</div>';
 }
 
 /**
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index ac42ea3..7a532f0 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -442,7 +442,7 @@ function system_element_info() {
   $types['radios'] = array(
     '#input' => TRUE,
     '#process' => array('form_process_radios'),
-    '#theme_wrappers' => array('radios'),
+    '#theme_wrappers' => array('container'),
     '#pre_render' => array('form_pre_render_conditional_form_element'),
   );
   $types['radio'] = array(
