rem: if (T==0)
add: if (T==T_NULL)
context: int t_put_on_wait(  struct sip_msg  *p_msg  ){   struct timer_link *tl;   unsigned int i;   t_check( hash_table , p_msg );   /* do we have something to release? */   if (T==0)      return -1;  if ( is_in_timer_list( (&(T->wait_tl)) , WT_TIMER_LIST) )  {     DBG("DEBUG: t_put_on_wait: already on wait\n");     return -1;  }  /**/  for( i=0 ; i<T->nr_of_outgoings ; i++ )      if ( T->outbound_response[i] && T->outbound_response[i]->first_line.u.reply.statusclass==1)          t_cancel_branch(i);   /* make double-sure we have finished everything */   /* remove from  retranssmision  and  final response   list */   DBG("DEBUG: t_put_on_wait: remove inboud stuff from lists\n");   if ( T->inbound_response )   {      remove_from_timer_list( hash_table , &(T->inbound_response->tl[RETRASMISSIONS_LIST]) , RETRASMISSIONS_LIST );      remove_from_timer_list( hash_table , &(T->inbound_response->tl[FR_TIMER_LIST]) , FR_TIMER_LIST );   }   for( i=0 ; i<T->nr_of_outgoings ; i++ )   {      DBG("DEBUG: t_put_on_wait: remove outboud stuff[%d] from lists\n",i);      remove_from_timer_list( hash_table , &(T->outbound_request[i]->tl[RETRASMISSIONS_LIST]) , RETRASMISSIONS_LIST );      remove_from_timer_list( hash_table , &(T->outbound_request[i]->tl[FR_TIMER_LIST]) , FR_TIMER_LIST );   }   /* adds to Wait list*/   add_to_tail_of_timer_list( hash_table, &(T->wait_tl), WT_TIMER_LIST, WT_TIME_OUT );   return 1;}