+ if(cmd == "PRIVMSG" && params.count() > 1) {
+ int overrun = lastParamOverrun(cmd, params);
+ if(overrun) {
+ QList<QByteArray> paramCopy1;
+ QList<QByteArray> paramCopy2;
+ for(int i = 0; i < params.count() - 1; i++) {
+ paramCopy1 << params[i];
+ paramCopy2 << params[i];
+ }
+
+ QByteArray lastPart = params.last();
+ QByteArray splitter(" .,-");
+ int maxSplitPos = params.last().count() - overrun;
+ int splitPos = -1;
+ for(int i = 0; i < splitter.size(); i++) {
+ splitPos = qMax(splitPos, lastPart.lastIndexOf(splitter[i], maxSplitPos));
+ }
+
+ if(splitPos == -1) {
+ splitPos = maxSplitPos;
+ }
+
+ paramCopy1 << lastPart.left(splitPos);
+ paramCopy2 << lastPart.mid(splitPos);
+ putCmd(cmd, paramCopy1, prefix);
+ putCmd(cmd, paramCopy2, prefix);
+ return;
+ }
+ }
+