--- adm_config_set.php	Tue Mar  2 10:44:32 2010
+++ adm_config_set_new.php	Tue Mar  2 10:30:46 2010
@@ -101,18 +101,21 @@ if ( $t_type === 'string' ) {
 	# 3. associative arrays with the form: array( a=>1, b=>2, c=>3, d=>4 )
 	$t_full_string = trim( $f_value );
 	if ( preg_match('/array[\s]*\((.*)\)/', $t_full_string, $t_match ) === 1 ) {
-		// we have an array here
-		$t_values = explode( ',', trim( $t_match[1] ) );
-		foreach ( $t_values as $key => $value ) {
-			$t_split = explode( '=>', $value, 2 );
-			if ( count( $t_split ) == 2 ) {
-				// associative array
-				$t_new_key = constant_replace( trim( $t_split[0] ) );
-				$t_new_value = constant_replace( trim( $t_split[1] ) );
-				$t_value[ $t_new_key ] = $t_new_value;
-			} else {
-				// regular array
-				$t_value[ $key ] = constant_replace( trim( $value ) );
+		@eval('$t_value='.$t_full_string);
+		if (!$t_value) {
+			// we have an array here
+			$t_values = explode( ',', trim( $t_match[1] ) );
+			foreach ( $t_values as $key => $value ) {
+				$t_split = explode( '=>', $value, 2 );
+				if ( count( $t_split ) == 2 ) {
+					// associative array
+					$t_new_key = constant_replace( trim( $t_split[0] ) );
+					$t_new_value = constant_replace( trim( $t_split[1] ) );
+					$t_value[ $t_new_key ] = $t_new_value;
+				} else {
+					// regular array
+					$t_value[ $key ] = constant_replace( trim( $value ) );
+				}
 			}
 		}
 	} else {
