Ill post what I did to mine, i added the nick change stuff for you, I personally dont care when someone changes nicks also not many people i talk to change them so it wasnt likely to happen to me. The problem with tracking nick changes is that you need to be in a channel with them, and also they might start changing nicks to ones you have convos logged for, so do you keep the old one or rename the current one and replace the old ones convo etc etc. I just did what i felt like smile whcih was delete $newnick log, then rename $nick log to $newnick log.
If u dont like it ill refund your money ok? (please see contact my accounts lady Helen Waite for assistance on this)

What have I done to this
(1) Fixed bad filenames I use a custom fix rather than $mkfn comes to the same thing mostly.
(2) Monitor for nick changes
(3) Confirm on window close, and close all hidden query windows if closing
(4) Double click whois info gets displayed in background

The code is getting a bit big to be posted in total over and over BUT i thought that some might like what i did with the Double Click Whois so ill post it once here, I been experementing with the process ever since Iori came up with this quick clean method of making bitmaps in mirc.
I didnt spend much time on checking what RAW's a whois uses just looked at my debug window and took a punt at 300-320, and 614, if there wrong sue me smile

Someone give me some feed back on the whois info thing, is it good or just poser material?

Code:
;
; ** Misc **
;
alias -l Fix.Str2File { return $replace($1,&,&26,\,&5C,/,&2F,:,&3A,*,&2A,?,&3F,",&22,<,&3C,>,&3E,|,&7C,.,&2E) }
alias -l Fix.File2Str { return $replace($1,&5C,\,&2F,/,&3A,:,&2A,*,&3F,?,&22,",&3C,<,&3E,>,&7C,|,&2E,.,&26,&) }
;
; ** Menus **
;
menu @Quer.MENU {
  ;mouse  :/echo -st mouse moved at $mouse.x $mouse.y in $active $1
  ;sclick :/echo -st single click at $mouse.x $mouse.y
  ;dclick :/echo -st double click at $mouse.x $mouse.y
  ;uclick :/echo -st mouse released at $mouse.x $mouse.y
  ;rclick :/echo -st single right-click at $mouse.x $mouse.y in $active $1
  ;leave  :/echo -st mouse left $leftwin
  ;drop   :/echo -st drag and drop at $mouse.x $mouse.y
  ;lbclick:/echo -st lbclick at $mouse.x $mouse.y in $active $1
  lbclick: {
    sline -l $QuerWindow $1
    clear $QuerWindow
    background -x $QuerWindow 
    if ($sline($QuerWindow,0) == 1) {
      quer.titlebar
      var %f = $+(QuerLogs\Quer.,$Fix.Str2File($sline($QuerWindow,1)),.jpg) | if ($isfile(%f)) { background -p $QuerWindow %f }
      var %f = $+(QuerLogs\Quer.,$Fix.Str2File($sline($QuerWindow,1)),.txt) | if ($isfile(%f)) { loadbuf -pi $QuerWindow %f }
    }
  }
  dclick: {
    if ($sline($QuerWindow,0) == 1) {
      whois $sline($QuerWindow,1)
      set %Quer.Whois $sline($QuerWindow,1)
    }
  }
  Close $$1 Conversation: {
    if ($sline($QuerWindow,0) == 1) {
      clear $QuerWindow
      write $+(QuerLogs\Quer.,$Fix.Str2File($1),.txt) Session ended: $+([,$asctime,],$lf,$lf)
      close -m $1
      background -x $QuerWindow
      titlebar $QuerWindow
      dline -l $QuerWindow $sline($QuerWindow,1).ln
    }
  }
  Delete $$1 History: {
    if ($sline($QuerWindow,0) == 1) {
      clear $QuerWindow
      close -m $1
      background -x $QuerWindow
      titlebar $QuerWindow
      dline -l $QuerWindow $sline($QuerWindow,1).ln
      .remove $+(QuerLogs\Quer.,$Fix.Str2File($1),.txt)
    }
  }
}
;
; ** identifiers **
;
alias QuerWindow {
  set %QuerWindow $+(@Message,$chr(160),Queuer)
  if (!$window(%QuerWindow)) { window -odeSl11k0 %QuerWindow 245 250 594 266 @Quer.MENU }
  return %QuerWindow
}
;
; ** Aliases **
;
alias Quer.Titlebar { titlebar $QuerWindow - Conversation with $sline($QuerWindow,1) - $iif(%QuerTextWin,TW,NW) - $iif(%QuerConfirmOff,IM,CM) }
;
; ** Events **
;
on ^*:open:?:*:{ query -n $nick | window -h $nick }
;
on ^*:text:*:?:{ quer.open.and.text.event $1- }
on ^*:action:*:?:{ quer.open.and.text.event $1- }
alias quer.open.and.text.event {
  mkdir QuerLogs
  var %t = $+($iif($event == action, $+ $color(action)),[,$time(HH:nn),]) $iif($event == action,* $nick,$+(<,$nick,>)) $1-
  write $+(QuerLogs\Quer.,$Fix.Str2File($nick),.txt) %t
  aline -ln $QuerWindow $nick 
  if ($sline($QuerWindow,1) == $nick) { aline -pi $QuerWindow %t }
  window -g1 $QuerWindow
  window -h $nick
  haltdef
}
;
on *:input:@:{
  if ($active == %QuerWindow) {
    if ((%QuerTextWin) || ($ctrlenter) || (/* !iswm $1-)) { .quer.msg $1- }
    else { .timer 1 0 savebuf $QuerWindow $+(QuerLogs\Quer.,$Fix.Str2File($sline($QuerWindow,1)),.txt) }
  }
}
alias quer.msg {
  if ($sline($QuerWindow,0) == 1) {
    if ((%QuerConfirmOff) || ($input(Secure Send Message $+ $crlf $+ Send this message to $sline($QuerWindow,1) $+ ? $+ $crlf $+ $crlf $+ $1-,c,Send Message.) == $true)) {
      PRIVMSG $sline($QuerWindow,1) $1-
      aline -p $QuerWindow $+([,$time(HH:nn),] <,$me,>) $1-
      haltdef
    }
    else { editbox $QuerWindow $1- }
    savebuf $QuerWindow $+(QuerLogs\Quer.,$Fix.Str2File($sline($QuerWindow,1)),.txt)
  }
}
;
on *:NICK:{
  if ($fline($QuerWindow,$nick,1,1)) { 
    if ($sline($QuerWindow,1) == $nick) {
      dline -l $QuerWindow $fline($QuerWindow,$nick,1,1)
      aline -ln $QuerWindow $newnick
      sline -l $QuerWindow $fline($QuerWindow,$newnick,1,1)
      quer.titlebar
    }
    else {
      dline -l $QuerWindow $fline($QuerWindow,$nick,1,1)
      aline -ln $QuerWindow $newnick
    }
  }
  var %of = $+(QuerLogs\Quer.,$Fix.Str2File($nick),.txt)
  if ($isfile(%of)) { 
    var %nf = $+(QuerLogs\Quer.,$Fix.Str2File($newnick),.txt)
    .remove %nf
    .timer 1 0 .rename %of %nf
  }
  var %of = $+(QuerLogs\Quer.,$Fix.Str2File($nick),.jpg)
  if ($isfile(%of)) { 
    var %nf = $+(QuerLogs\Quer.,$Fix.Str2File($newnick),.jpg)
    .remove %nf
    .timer 1 0 .rename %of %nf
  }
}
;
on *:Keydown:%QuerWindow:*: { 
  ;/echo -st DN $keyval .. $keyrpt 
  ;splay sounds\typewriter.wav
  if ($keyval == 18) { 
    var %cycle = $!false $!false/$true $!false/$true $!true/$false $!true/$false $!false
    var %cycle = $gettok(%cycle,$calc($findtok(%cycle,%QuerTextWin %QuerConfirmOff,1,47)+1),47)
    set %QuerTextWin $gettok(%cycle,1,32)
    set %QuerConfirmOff $gettok(%cycle,2,32)
    Quer.Titlebar
  }
  elseif ($keyval == 27) { window -c $QuerWindow }
}
;
on *:CLOSE:%QuerWindow:{
  window -n $QuerWindow
  if ($?!="Are you sure you want to close the $QuerWindow window?" != $true ) {
    close -@ $QuerWindow $+ Closing
    renwin $QuerWindow $QuerWindow $+ Closing
    filter -cpzww $QuerWindow $+ Closing $QuerWindow *
    filter -czwwlL $QuerWindow $+ Closing $QuerWindow *
    if ($sline($QuerWindow $+ Closing,1).ln) {
      sline -l $QuerWindow [ $v1 ]
      Quer.Titlebar
      var %f = $+(QuerLogs\Quer.,$Fix.Str2File($sline($QuerWindow,1)),.jpg) | if ($isfile(%f)) { background -p $QuerWindow %f }
    }
  }
  else {
    background -x $QuerWindow
    var %i = $line($QuerWindow,0,1)
    while (%i) { 
      close -m $line($QuerWindow,%i,1)
      dec %i
    }
  }
}
;
;ON WHOIS uses RAW 300-320,614 (maybe some others?) see below
alias quer.whois.image {
  set %quer.whois.image @quer.whois.image
  if (!$window(%quer.whois.image)) { 
    window -c %quer.whois.image
    set %Quer.whois.image.x 5
    set %Quer.Whois.image.y 5
    window -hp %quer.whois.image 1 1 100 100
    set %Quer.whois.image.w.adjust $calc($window(%quer.whois.image).w - $window(%quer.whois.image).bw + 10)
    set %Quer.whois.image.h.adjust $calc($window(%quer.whois.image).h - $window(%quer.whois.image).bh + 10)
  }
  return %quer.whois.image
}
alias quer.whois.line {
  ;/echo -st RAW $numeric : $1-
  var %width = $width($1-,$window($quer.whois.image).font,$window($quer.whois.image).fontsize,0,1) + %Quer.whois.image.w.adjust
  var %height = $height($1-,$window($quer.whois.image).font,$window($quer.whois.image).fontsize)
  window $quer.whois.image 1 1 %width $calc(%Quer.whois.image.y + %height + %Quer.whois.image.h.adjust)
  drawtext -p $quer.whois.image $color(normal text) 5 %Quer.whois.image.y $1-
  inc %Quer.whois.image.y %height
  haltdef
}
alias quer.whois.finish {
  window $quer.whois.image 1 1 1 240
  var %f = $+(QuerLogs\Quer.,$Fix.Str2File(%Quer.whois),.jpg)
  drawsave $quer.whois.image %f
  background -p $QuerWindow %f
  window -c $quer.whois.image
  haltdef
}
raw 300:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 301:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 302:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 303:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 304:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 305:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 306:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 307:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 308:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 309:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 310:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 311:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 312:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 313:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 314:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 315:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 316:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 317:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 318:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.finish
raw 319:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 320:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-
raw 614:$(& $iif(%Quer.whois,$v1,-) *):quer.whois.line $3-