diff --git a/compact_forms.admin.inc b/compact_forms.admin.inc
index 41f941d..ef15f18 100644
--- a/compact_forms.admin.inc
+++ b/compact_forms.admin.inc
@@ -17,6 +17,12 @@ function compact_forms_admin_form($form, &$form_state) {
     '#default_value' => variable_get('compact_forms_ids', 'user-login-form'),
     '#description' => t('Enter the CSS IDs of the forms to display compact. One per line.'),
   );
+  $form['compact_forms_select'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Compact select list elements'),
+    '#description' => t('Replaces default "Any" option with field label.'),
+    '#default_value' => variable_get('compact_forms_select', 1),
+  );
   $form['compact_forms_descriptions'] = array(
     '#type' => 'checkbox',
     '#title' => t('Hide field descriptions'),
diff --git a/compact_forms.js b/compact_forms.js
index 72e87bb..26c2329 100644
--- a/compact_forms.js
+++ b/compact_forms.js
@@ -17,7 +17,7 @@ $.fn.compactForm = function (stars) {
         return;
       }
       var $field = $('#' + $label.attr('for'), context);
-      if (!$field.length || !$field.is('input:text,input:password,textarea,input[type=email]')) {
+      if (!$field.length || !$field.is('input:text,input:password,textarea,input[type=email],select')) {
         return;
       }
       // Store the initial field value, in case the browser is going to
diff --git a/compact_forms.module b/compact_forms.module
index 1a2e476..d05ab4b 100644
--- a/compact_forms.module
+++ b/compact_forms.module
@@ -55,8 +55,34 @@ function compact_forms_form_alter(&$form, $form_state, $form_id) {
  * @todo Replace with #attached and move back into hook_form_alter().
  */
 function compact_forms_pre_render($form) {
-  static $css_ids, $form_ids, $loaded, $field_size, $descriptions;
+  static $loaded, $field_size, $descriptions;
 
+  if ($css_ids = compact_forms_check_form_id($form)) {
+    // Prepare form alteration settings.
+    if (!isset($field_size)) {
+      $field_size = variable_get('compact_forms_field_size', '');
+      $descriptions = variable_get('compact_forms_descriptions', 1);
+      $selects = variable_get('compact_forms_select', 1);
+    }
+    // Load our page requisites and JavaScript settings.
+    if (!isset($loaded)) {
+      _compact_forms_include_js($css_ids);
+      $loaded = TRUE;
+    }
+    // Only alter the form if a custom field size is configured or form element
+    // descriptions shall be hidden.
+    if (!empty($field_size) || $descriptions || $selects) {
+      _compact_forms_resize_fields($form, $field_size, $descriptions, $selects);
+    }
+  }
+  return $form;
+}
+
+/**
+ * Check to see if the current form should be modified.
+ */
+function compact_forms_check_form_id($form) {
+  static $css_ids, $form_ids;
   // Prepare CSS form ids.
   if (!isset($css_ids)) {
     $css_ids = explode("\n", variable_get('compact_forms_ids', 'user-login-form'));
@@ -69,13 +95,7 @@ function compact_forms_pre_render($form) {
       $form_ids[] = strtr($id, array('-' => '_'));
     }
   }
-  // Prepare form alteration settings.
-  if (!isset($field_size)) {
-    $field_size = variable_get('compact_forms_field_size', '');
-    $descriptions = variable_get('compact_forms_descriptions', 1);
-  }
-
-  if (in_array($form['form_id']['#value'], $form_ids) || (isset($form['#id']) && in_array($form['#id'], $css_ids))) {
+  if (isset($form['form_id']) && in_array($form['form_id']['#value'], $form_ids) || (isset($form['#id']) && in_array($form['#id'], $css_ids))) {
     // If the custom #compact_forms property has been programmatically set to
     // FALSE, do not process this form.
     if (isset($form['#compact_forms']) && !$form['#compact_forms']) {
@@ -85,21 +105,11 @@ function compact_forms_pre_render($form) {
           unset($css_ids[$key]);
         }
       }
-      return;
-    }
-
-    // Load our page requisites and JavaScript settings.
-    if (!isset($loaded)) {
-      _compact_forms_include_js($css_ids);
-      $loaded = TRUE;
-    }
-    // Only alter the form if a custom field size is configured or form element
-    // descriptions shall be hidden.
-    if (!empty($field_size) || !$descriptions) {
-      _compact_forms_resize_fields($form, $field_size, $descriptions);
+      return FALSE;
     }
+    return $css_ids;
   }
-  return $form;
+  return FALSE;
 }
 
 /**
@@ -108,19 +118,26 @@ function compact_forms_pre_render($form) {
  * @todo Perform this in #after_build instead. - Or use hook_elements() to
  *   append a #process function to all supported elements.
  */
-function _compact_forms_resize_fields(&$form, $field_size, $descriptions) {
+function _compact_forms_resize_fields(&$form, $field_size, $descriptions, $selects) {
   if (empty($form) || !is_array($form)) {
     return;
   }
+
   foreach (element_children($form) as $key) {
     if (!isset($form[$key]['#type'])) {
       continue;
     }
     switch ($form[$key]['#type']) {
       case 'fieldset':
-        _compact_forms_resize_fields($form[$key], $field_size, $descriptions);
+      case 'container':
+        _compact_forms_resize_fields($form[$key], $field_size, $descriptions, $selects);
+        break;
+      case 'select':
+        if ($selects) {
+          $form[$key]['#options']['_none'] = $form[$key]['#title'];
+          $form[$key]['#attributes']['class'][] = 'compact-form-select';
+        }
         break;
-
       case 'textfield':
       case 'textarea':
       case 'password':
@@ -128,7 +145,7 @@ function _compact_forms_resize_fields(&$form, $field_size, $descriptions) {
         if (!empty($field_size)) {
           $form[$key]['#size'] = $field_size;
         }
-        if (!$descriptions) {
+        if ($descriptions) {
           unset($form[$key]['#description']);
         }
         break;
@@ -146,7 +163,6 @@ function _compact_forms_include_js($css_ids) {
   $path = drupal_get_path('module', 'compact_forms');
   drupal_add_js($path . '/compact_forms.js');
   drupal_add_css($path . '/compact_forms.css');
-
   $settings = array(
     'compactForms' => array(
       'forms' => $css_ids,
@@ -154,5 +170,4 @@ function _compact_forms_include_js($css_ids) {
     ),
   );
   drupal_add_js($settings, 'setting');
-}
-
+}
\ No newline at end of file
