This ought to work (try clearing your variables first, perhaps):
Code:
on *:dialog:dialog_name:init:0:{ 
  load-list $mircdirlist.ini
}
on *:dialog:dialog_name:sclick:3:{
  if ($did(1).sel == 1) { unset %A1 } | else { set %A1 $did(1).seltext } 
  if ($did(2).sel == 1) { unset %A2 } | else { set %A2 $did(2).seltext }
}
alias -l load-list {
  ; Reads only sections
  ; Syntax: /load-list inifile
  if (!$isfile($1-)) echo -a File doesn't exist. $+($chr(40),$1-,$chr(41))
  else {
    did -r dialog_name 1-2
    var %i = 1
    while ($ini($1-,%i)) {
      did -a dialog_name 1-2 $v1
      set %combo.list $+(%combo.list,|,$v1)
      inc %i
    }
    if (%A1) did -c dialog_name 1 $findtok(%combo.list,%A1,1,124)
    if (%A2) did -c dialog_name 2 $findtok(%combo.list,%A2,1,124)
    unset %combo.list
  }
}