diff --git a/public/lib/adminlib.php b/public/lib/adminlib.php index c68705c8cf2..4a86a77c351 100644 --- a/public/lib/adminlib.php +++ b/public/lib/adminlib.php @@ -3707,12 +3707,15 @@ class admin_setting_configmultiselect extends admin_setting_configselect { if (!is_array($data)) { return ''; //ignore it } - if (!$this->load_choices() or empty($this->choices)) { - return ''; - } unset($data['xxxxx']); + // Only reject when the caller actually supplied a value + // and there is no valid choices to validate against. + if (!empty($data) && (!$this->load_choices() || empty($this->choices))) { + return ''; + } + $save = array(); foreach ($data as $value) { if (!array_key_exists($value, $this->choices)) {