rem: if ( !val.isNull() && !mLockFiles.contains(val) )
add: if ( !val.isNull() && !mLockFiles.contains(val) ) {
context: ProcmailRCParser::processLocalLock(const QString &s){  QString val;  int colonPos = s.findRev(':');  if (colonPos > 0) { // we don't care about the leading one    val = s.mid(colonPos + 1).stripWhiteSpace();    if ( val.length() ) {      // user specified a lockfile, so process it      //      val = expandVars(val);      if( val[0] != '/' && mVars.find("MAILDIR") )        val.insert(0, *(mVars["MAILDIR"]) + '/');    } // else we'll deduce the lockfile name one we    // get the spoolfile name  }  // parse until we find the spoolfile  QString line, prevLine;  do {    prevLine = line;    line = mStream->readLine().stripWhiteSpace();  } while ( !mStream->eof() && (line[0] == '*' ||                                prevLine[prevLine.length() - 1] == '\\' ));  if( line[0] != '!' && line[0] != '|' &&  line[0] != '{' ) {    // this is a filename, expand it    //    line =  line.stripWhiteSpace();    line = expandVars(line);    // prepend default MAILDIR if needed    if( line[0] != '/' && mVars.find("MAILDIR") )      line.insert(0, *(mVars["MAILDIR"]) + '/');    // now we have the spoolfile name    if ( !mSpoolFiles.contains(line) )      mSpoolFiles << line;    if( colonPos > 0 && (!val || val.isEmpty()) ) {      // there is a local lockfile, but the user didn't      // specify the name so compute it from the spoolfile's name      val = line;      // append lock extension      if( mVars.find("LOCKEXT") )        val += *(mVars["LOCKEXT"]);      else        val += ".lock";    }    if ( !val.isNull() && !mLockFiles.contains(val) )      mLockFiles << val;  }}