diff --git a/backends/libcommuni/session.cpp b/backends/libcommuni/session.cpp index 8f37e978..31ac3d54 100644 --- a/backends/libcommuni/session.cpp +++ b/backends/libcommuni/session.cpp @@ -122,13 +122,15 @@ void MyIrcSession::on_disconnected() { bool MyIrcSession::correctNickname(std::string &nickname) { bool flags = 0; - switch(nickname.at(0)) { - case '@': nickname = nickname.substr(1); flags = 1; break; - case '+': nickname = nickname.substr(1); break; - case '~': nickname = nickname.substr(1); break; - case '&': nickname = nickname.substr(1); break; - case '%': nickname = nickname.substr(1); break; - default: break; + if (!nickname.empty()) { + switch(nickname.at(0)) { + case '@': nickname = nickname.substr(1); flags = 1; break; + case '+': nickname = nickname.substr(1); break; + case '~': nickname = nickname.substr(1); break; + case '&': nickname = nickname.substr(1); break; + case '%': nickname = nickname.substr(1); break; + default: break; + } } return flags; }