Sorry, thats what I getfor skim-reading complex code.
I looked at it properly and I see what you mean now.

Try this as a replacement of your old code...
Code:
   mouse_mode=0;
   STRING* act_char=" ";   var act_scan=0;
   str_cpy((login_panel_password.pstring)[0],""); //clear the (stars)string
   str_cpy((login_panel_password.pstring)[1],"");//clear the (chars)string
   do{
      if(key_any==1 && mouse_left==0 && mouse_right==0 && mouse_middle==0)
      {
         act_scan = inchar(act_char);
         if(act_scan!=14)
         {   //backspace is not pressed
            str_cat((login_panel_password.pstring)[0],"*");
            str_cat((login_panel_password.pstring)[1],act_char);
         }
         else
         {   //backspace IS pressed
            str_trunc((login_panel_password.pstring)[0],1);
            str_trunc((login_panel_password.pstring)[1],1);
         }
      }
      wait(1);
   }while(act_scan!=28&&str_len((login_panel_password.pstring)[0])<100);
   mouse_mode=2;



"There is no fate but what WE make." - CEO Cyberdyne Systems Corp.
A8.30.5 Commercial