A good friend came up with this:

Code:
 ;$1- is de tekst die gecensureerd moet worden
alias censuur {
  var %text = $1-
  var %i = $hget(censuur,0).data
  while ( %i ) {
    var %word = $hget(censuur,%i).data
    var %text = $iif($regsub($strip(%text),/\b $+ %word $+ \b/ig,$str(*,$len(%word)),%new),%new,%text)
    dec %i
  }
  return %text
}

;voegt een woord toe aan censuur
alias addcensuur {
  hadd -m censuur $1 $1
  savecensuur
}

;verwijdert een woord uit de censuur lijst 
;(gebruik een * voor meerdere soortgelijke woorden te verwijderen)
alias delcensuur {
  .hdel -w $1
  savecensuur
}

;bewaard de censuurlijst
alias savecensuur { .hsave censuur censuur.txt }

;censuurlijst inladen
alias loadcensuur { 
  .hmake censuur 100 
  if ( $exists(censuur.txt) ) { .hload censuur censuur.txt }
}

;laat alle woorden zien
alias showcensuur {
  if ( $window(@censuur) ) { window -c @censuur }
  window -s @censuur
  var %i = $hget(censuur,0).data
  while ( %i ) {
    aline @censuur $hget(censuur,%i).data
    dec %i
  }
}
on *:start: { loadcensuur }
on ^*:text:*:*: { echo -t $target < $+ $iif($target ischan,$nick($chan,$nick).pnick,$nick) $+ > $censuur($1-) | haltdef }
on ^*:action:*:*: { echo -t $target < $+ $iif($target ischan,$nick($chan,$nick).pnick,$nick) $+ > $censuur($1-) | haltdef } 


And this works perfectly.
Thanks snabbi