protected function convert(array $value)
    {
        $return = array();
        foreach ($value as $name => $elements) {
            if (is_array($elements)) {
                // We have a checkbox hit for a subform/fieldset,
                if (isset($elements['__all__'])) {
                    if ('0' == $elements['__all__']) {
                        // The whole subform/fieldset shall be disabled, so add it and continue.
                        $return[] = $name;
                        continue;
                    } else {
                        // We do not need the toggle all checkbox value anymore.
                        unset($elements['__all__']);
                    }
                }
                // recurse with the subform/fieldset element toggle checkboxes.
                $result = $this->convert($elements);

                if (count($result)) {
                    // Some elements on the subform shall be disabled, so add the result array.
                    $return[$name] = $result;
                }
                continue;
            }

            if ('0' == $elements) {
                // We have a disabled element, add it to the array.
                $return[] = $name;
            }
        }
        return $return;
    }