Index: trunk/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r4309 -r4320 --- trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 4309) +++ trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 4320) @@ -826,7 +826,7 @@ foreach ($items_info as $id => $field_values) { $object->Load($id); // record created for using with selector (e.g. Reviews->Select User), and not validated => Delete it - if ($object->isLoaded() && !$object->Validate()) { + if ($object->isLoaded() && !$object->Validate() && ($id <= 0) ) { $delete_ids[] = $id; } } @@ -1656,17 +1656,20 @@ $this->RemoveRequiredFields($object); $is_new = !$object->isLoaded(); + $is_main = $this->Application->GetVar($event->Prefix.'_mode') == 't'; if ($is_new) { - $new_event = $this->Application->GetVar($event->Prefix.'_mode' == 't') ? 'OnPreCreate' : 'OnNew'; + $new_event = $is_main ? 'OnPreCreate' : 'OnNew'; $event->CallSubEvent($new_event); } $object->SetDBField($this->Application->RecallVar('dst_field'), $user_id); if ($is_new) { $object->Create(); - if ($object->IsTempTable()) $object->setTempID(); + if (!$is_main && $object->IsTempTable()) { + $object->setTempID(); + } } else { $object->Update(); Index: trunk/kernel/admin_templates/incs/form_blocks.tpl =================================================================== diff -u -N -r4309 -r4320 --- trunk/kernel/admin_templates/incs/form_blocks.tpl (.../form_blocks.tpl) (revision 4309) +++ trunk/kernel/admin_templates/incs/form_blocks.tpl (.../form_blocks.tpl) (revision 4320) @@ -171,14 +171,18 @@ - + "> " id="" value="" tabindex="" size="" class=""> - ', '', '');"> - - + + ');"> + + ', '', '');"> + + +