Using PHP4 I had same problem and I looked at edit.php. Line 130 has a foreach that was never being entered because the $fromform->categories was a single scalar value. Commented that out and did an assignment that only works for one category:
if (empty($fromform->notcategorised) && isset($fromform->categories)) {
$newcategory->entryid = $e;
//foreach ($fromform->categories as $category) {
// if ( $category > 0 ) {
// $newcategory->categoryid = $category;
// insert_record("glossary_entries_categories", $newcategory, false);
// } else {
// break;
// }
//}
if ( $fromform->categories > 0 ) {
$newcategory->categoryid = $fromform->categories;
insert_record("glossary_entries_categories", $newcategory, false);
}
}
So either PHP4's foreach behaves differently or PHP4 is involved in $fromform->categories not being an array.
Small discussion at http://moodle.org/mod/forum/discuss.php?d=70156#p314685