diff --git modules/profile/profile.admin.inc modules/profile/profile.admin.inc
index bf240e3..8419580 100644
--- modules/profile/profile.admin.inc
+++ modules/profile/profile.admin.inc
@@ -235,7 +235,7 @@ Unless you know what you are doing, it is highly recommended that you prefix the
     '#default_value' => $edit['explanation'],
     '#description' => t('An optional explanation to go with the new field. The explanation will be shown to the user.'),
   );
-  if ($type == 'selection') {
+  if ($type == 'selection' || $type == 'radios') {
     $form['fields']['options'] = array('#type' => 'textarea',
       '#title' => t('Selection options'),
       '#default_value' => isset($edit['options']) ? $edit['options'] : '',
@@ -247,7 +247,7 @@ Unless you know what you are doing, it is highly recommended that you prefix the
     '#default_value' => isset($edit['visibility']) ? $edit['visibility'] : PROFILE_PUBLIC,
     '#options' => array(PROFILE_HIDDEN => t('Hidden profile field, only accessible by administrators, modules and themes.'), PROFILE_PRIVATE => t('Private field, content only available to privileged users.'), PROFILE_PUBLIC => t('Public field, content shown on profile page but not used on member list pages.'), PROFILE_PUBLIC_LISTINGS => t('Public field, content shown on profile page and on member list pages.')),
   );
-  if ($type == 'selection' || $type == 'list' || $type == 'textfield') {
+  if ($type == 'selection' || $type == 'list' || $type == 'textfield' || $type == 'radios') {
     $form['fields']['page'] = array('#type' => 'textfield',
       '#title' => t('Page title'),
       '#default_value' => $edit['page'],
diff --git modules/profile/profile.module modules/profile/profile.module
index d6bf6b1..fd485dd 100644
--- modules/profile/profile.module
+++ modules/profile/profile.module
@@ -37,6 +37,7 @@ function profile_help($path, $arg) {
       $output .= '<ul><li>'. t('single-line textfield') .'</li>';
       $output .= '<li>'. t('multi-line textfield') .'</li>';
       $output .= '<li>'. t('checkbox') .'</li>';
+      $output .= '<li>'. t('radios') .'</li>';
       $output .= '<li>'. t('list selection') .'</li>';
       $output .= '<li>'. t('freeform list') .'</li>';
       $output .= '<li>'. t('URL') .'</li>';
@@ -415,6 +416,23 @@ function profile_form_profile($edit, $user, $category, $register = FALSE) {
           '#required' => $field->required,
         );
         break;
+      case 'radios':
+        unset($options);
+        $lines = split("[\n\r]", $field->options);
+        foreach ($lines as $line) {
+          if ($line = trim($line)) {
+            $options[$line] = $line;
+          }
+        }
+        $fields[$category][$field->name] = array('#type' => 'radios',
+          '#title' => check_plain($field->title),
+          '#default_value' => isset($edit[$field->name]) ? $edit[$field->name] : '',
+          '#options' => $options,
+          '#description' => _profile_form_explanation($field),
+          '#required' => $field->required,
+        );
+        break;
+
     }
   }
   return $fields;
@@ -546,6 +564,7 @@ function _profile_field_types($type = NULL) {
                  'textarea' => t('multi-line textfield'),
                  'checkbox' => t('checkbox'),
                  'selection' => t('list selection'),
+                 'radios' => t('radio buttons'),
                  'list' => t('freeform list'),
                  'url' => t('URL'),
                  'date' => t('date'));
