Index: t3lib/class.t3lib_befunc.php =================================================================== --- t3lib/class.t3lib_befunc.php (Revision 6045) +++ t3lib/class.t3lib_befunc.php (Arbeitskopie) @@ -2906,9 +2906,15 @@ if (is_array($MOD_MENU)) { foreach ($MOD_MENU as $key=>$var) { // If a global var is set before entering here. eg if submitted, then it's substituting the current value the array. - if (is_array($CHANGED_SETTINGS) && isset($CHANGED_SETTINGS[$key]) && strcmp($settings[$key], $CHANGED_SETTINGS[$key])) { - $settings[$key] = (string)$CHANGED_SETTINGS[$key]; - $changed = 1; + if (is_array($CHANGED_SETTINGS) && isset($CHANGED_SETTINGS[$key])) { + if ( !is_array($CHANGED_SETTINGS[$key]) && strcmp($settings[$key], $CHANGED_SETTINGS[$key]) ) { + $settings[$key] = $CHANGED_SETTINGS[$key]; + $changed = 1; + } + if ( is_array($CHANGED_SETTINGS[$key]) && strcmp($settings[$key], serialize($CHANGED_SETTINGS[$key])) ) { + $settings[$key] = serialize($CHANGED_SETTINGS[$key]); + $changed = 1; + } } // If the $var is an array, which denotes the existence of a menu, we check if the value is permitted if (is_array($var) && (!$dontValidateList || !t3lib_div::inList($dontValidateList, $key))) {