Index: View/Helper/FormSelect.php
===================================================================
--- View/Helper/FormSelect.php	(revision 18900)
+++ View/Helper/FormSelect.php	(working copy)
@@ -116,6 +116,15 @@
         $translator = $this->getTranslator();
         foreach ((array) $options as $opt_value => $opt_label) {
             if (is_array($opt_label)) {
+                $opt_id = '';
+                if (is_integer($opt_value)) {
+                    $opt_array = $opt_label;
+                    if (array_key_exists('id', $opt_array)) { 
+                        $opt_id = ' id="' . $opt_array['id'] . '"';
+                    }
+                    $opt_value = $opt_array['label'];
+                    $opt_label = $opt_array['options'];
+                }
                 $opt_disable = '';
                 if (is_array($disable) && in_array($opt_value, $disable)) {
                     $opt_disable = ' disabled="disabled"';
@@ -124,6 +133,7 @@
                     $opt_value = $translator->translate($opt_value);
                 }
                 $list[] = '<optgroup'
+                        . $opt_id
                         . $opt_disable
                         . ' label="' . $this->view->escape($opt_value) .'">';
                 foreach ($opt_label as $val => $lab) {
