SOLVED - Problem - Script fires two times

I have a script that Aqvilinus helped me modify. It works great accept for one thing. It fires two times and I don’t know why. The way it happens is: When you click on a door that is locked, with Key Required, the PC, if he/she is a rogue, tries to open the lock. Since it is impossible to open I’ve made it so that a conversation fires by gp_talk_door. In that conversation there is a conditional: if you have a successfull dice roll you open the door otherwise it doesn’t open. On both cases a short one line conversation starts. But the script seems to fire two times. I don’t get it. This is Aqvilinus script:

#include "ginc_param_const"

int StartingConditional(int nSkill, int nDC)
{
    object oPC = (GetPCSpeaker()==OBJECT_INVALID?GetFirstPC():GetPCSpeaker());
    object oPCF = GetFirstFactionMember(oPC, FALSE);
    int nSkillVal = GetSkillConstant(nSkill);
    int nAssocType;

    while (GetIsObjectValid(oPCF))
    {
        nAssocType = GetAssociateType(oPCF);

        if (nAssocType == ASSOCIATE_TYPE_NONE
         || nAssocType == ASSOCIATE_TYPE_HENCHMAN
         || nAssocType == ASSOCIATE_TYPE_FAMILIAR)
        {
            if (GetIsSkillSuccessful(oPCF, nSkillVal, nDC))
            {
                return TRUE;
            }
        }
        oPCF = GetNextFactionMember(oPC, FALSE);
    }

    // Just in case
    if (GetIsSkillSuccessful(oPC, nSkillVal, nDC))
    {
        return TRUE;
    }

    return FALSE;
}

And this is a picture of how it looks in game:

I got help from Aqvilinus. It was easily solved.