diff --git a/zone/task_client_state.cpp b/zone/task_client_state.cpp index 55cf2799a..49c906183 100644 --- a/zone/task_client_state.cpp +++ b/zone/task_client_state.cpp @@ -990,8 +990,8 @@ void ClientTaskState::RewardTask(Client *c, const TaskInformation *ti, ClientTas } if (item_id > 0) { - EQ::ItemInstance *inst = database.CreateItem(item_id, charges); - bool stacked = c->TryStacking(inst); + std::unique_ptr inst(database.CreateItem(item_id, charges)); + bool stacked = c->TryStacking(inst.get()); if (!stacked) { int16_t slot = c->GetInv().FindFreeSlot(inst->IsClassBag(), true, inst->GetItem()->Size); c->SummonItem(item_id, charges, 0, 0, 0, 0, 0, 0, false, slot);