diff --git a/exec/load/ircbot_functions.js b/exec/load/ircbot_functions.js
index 7735b1a6fef59fff952b1ab861b7f9420f358745..8f84a6970f6b764a97e28b6bb5a52182dd3609c1 100644
--- a/exec/load/ircbot_functions.js
+++ b/exec/load/ircbot_functions.js
@@ -259,16 +259,17 @@ function get_command_channel(srv,cmd) {
 }
 
 function parse_cmd_prefix(cmd) {
-	var pre=get_cmd_prefix();
-	cmd[1] = cmd[1].substr(pre.length).toUpperCase();
-	if ((cmd[1] == truncsp(get_cmd_prefix())) 
+	var pre=truncsp(get_cmd_prefix());
+
+	cmd[1] = cmd[1].substr(1).toUpperCase();
+	if ((cmd[1] == pre) 
 		 && cmd[2]) {
 		cmd.shift();
 		cmd.shift();
-	} else if(cmd[1][0] == truncsp(get_cmd_prefix())) {
+	} else if(cmd[1].search(new RegExp(pre+"\b")) == 0) {
 		cmd.shift();
-		cmd[0] = cmd[0].substr(1);
-	} else if(get_cmd_prefix()=="") {
+		cmd[0] = cmd[0].replace(new RegExp(pre+"\s*"));
+	} else if(pre=="") {
 		cmd.shift();
 	} else {
 		return false;