diff --git a/exec/load/ircbot_commands.js b/exec/load/ircbot_commands.js
index f41363875aa2b55e7d0f9a3fcb4ca8bc78343a32..4275a6fa0532d90bcd1c782ff6d7c2707f6e7231 100644
--- a/exec/load/ircbot_commands.js
+++ b/exec/load/ircbot_commands.js
@@ -202,3 +202,46 @@ Bot_Commands["PREFIX"].command = function (target,onick,ouh,srv,lvl,cmd) {
 	return;
 }
 
+Bot_Commands["ENABLE"] = new Bot_Command(80,true,false);
+Bot_Commands["ENABLE"].command = function (target,onick,ouh,srv,lvl,cmd) {
+	cmd.shift();
+	var mod=Modules[cmd[0].toUpperCase()];
+	if (mod) {
+		if(!mod.enabled) {
+			mod.enabled=true;
+			srv.o(target,cmd[0].toUpperCase() + " module enabled.");
+		} else {
+			srv.o(target,cmd[0].toUpperCase() + " module is already enabled.");
+		}
+	} else {
+		srv.o(target,"No such module.");
+	}
+	return;
+}
+
+Bot_Commands["DISABLE"] = new Bot_Command(80,true,false);
+Bot_Commands["DISABLE"].command = function (target,onick,ouh,srv,lvl,cmd) {
+	cmd.shift();
+	var mod=Modules[cmd[0].toUpperCase()];
+	if (mod) {
+		if(mod.enabled) {
+			mod.enabled=false;
+			srv.o(target,cmd[0].toUpperCase() + " module disabled.");
+		} else {
+			srv.o(target,cmd[0].toUpperCase() + " module is already disabled.");
+		}
+	} else {
+		srv.o(target,"No such module.");
+	}
+	return;
+}
+
+Bot_Commands["MODULES"] = new Bot_Command(0,false,false);
+Bot_Commands["MODULES"].command = function (target,onick,ouh,srv,lvl,cmd) {
+	var str="Modules: ";
+	for(m in Modules) {
+		str+=m+"("+(Modules[m].enabled?"ENABLED":"DISABLED")+") ";
+	}
+	srv.o(target,str);
+	return;
+}