--- includes/form.inc	2012-02-29 17:44:11.000000000 +0100
+++ includes/form.inc_new	2012-03-21 17:28:39.127532343 +0100
@@ -1579,7 +1579,30 @@
   $element['#children'] = '<div class="'. $class .'">'. (!empty($element['#children']) ? $element['#children'] : '') .'</div>';
   if ($element['#title'] || $element['#description']) {
     unset($element['#id']);
-    return theme('form_element', $element, $element['#children']);
+
+    $output = theme('form_element', $element, $element['#children']);
+
+    if (count($element['#options']) > 0) {
+      foreach($element['#options'] as $key => $choice) {
+        if (!isset($element[$key])) {
+          $parents_for_id = array_merge($element['#parents'], array($key));
+          $element[$key] = array(
+            '#type' => 'radio',
+            '#title' => $choice,
+            '#return_value' => check_plain($key),
+            '#attributes' => $element['#attributes'],
+            '#parents' => $element['#parents'],
+            '#id' => form_clean_id('edit-'. implode('-', $parents_for_id)),
+            '#name' => $element['#options_name'], //XXX: THIS MUST BE EQUAL TO THE KEY OF THE RADIOS ELEMENT
+            '#ahah' => isset($element['#ahah']) ? $element['#ahah'] : NULL,
+          );
+
+          $output .= theme_radio($element[$key]);
+        }
+      }
+    }
+
+    return $output;
   }
   else {
     return $element['#children'];
