void DestroyDoppelganger(object oDoppelganger)
{
//  Removing the items in the creatures item slots
    object oSlot = GetItemInSlot(INVENTORY_SLOT_ARMS, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_ARROWS, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_BELT, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_BOLTS, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_BOOTS, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_BULLETS, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_CLOAK, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_NECK, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oDoppelganger); DestroyObject(oSlot, 0.1f);
    object oItem = GetFirstItemInInventory(oDoppelganger);
    while (GetIsObjectValid(oItem) == TRUE)
    {
        DestroyObject(oItem);
        oItem = GetNextItemInInventory(oDoppelganger);
    }
/*  If you want any effects on the doppelganger when it dissepears,
    uncomment the lines below and alter it to suit your liking.*/
    //effect eDeath = EffectVisualEffect(VFX_IMP_RAISE_DEAD);
    //ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oDoppelganger);
//  Removing the Creature now as we finaly have gotten rid of the items.
    AssignCommand(oDoppelganger, AssignCommand(oDoppelganger, SetIsDestroyable(TRUE, FALSE, FALSE)));
    DestroyObject(oDoppelganger, 0.01f);
/*  I have moved the destroy chest and helmet armor to here so
    the corpse don't dissepear naked */
    oSlot = GetItemInSlot(INVENTORY_SLOT_CHEST, oDoppelganger); DestroyObject(oSlot, 0.1f);
    oSlot = GetItemInSlot(INVENTORY_SLOT_HEAD, oDoppelganger); DestroyObject(oSlot, 0.1f);
}
void main()
{
  object oDoppelganger = GetLocalObject( OBJECT_SELF, "Doppelganger");
  if (oDoppelganger != OBJECT_INVALID)
  {
    if (GetIsDead( oDoppelganger) == TRUE)
    {
      DestroyDoppelganger( oDoppelganger);
      DeleteLocalObject( OBJECT_SELF, "Doppelganger");
    }
    else
    {
      object oPC = GetLocalObject( oDoppelganger, "Cloned From");
      if (GetIsDead( oPC) == TRUE)
      {
        DestroyDoppelganger( oDoppelganger);
        DeleteLocalObject( OBJECT_SELF, "Doppelganger");
      }
      else
      {
        ExecuteScript( "nw_c2_default3", oDoppelganger);
      }
    }
  }
}