diff --git a/exec/load/ircbot_functions.js b/exec/load/ircbot_functions.js
index 2c438c616ad749a1261bf26dfd43e75e3b52aefc..34bf4e3b73172f19bf27e1c7c1a44aa042f24b72 100644
--- a/exec/load/ircbot_functions.js
+++ b/exec/load/ircbot_functions.js
@@ -330,11 +330,26 @@ function ctrl_a_to_mirc(s) {
     var ctrl_a = false;
     var bright = false;
     var last_colour = '';
+    var fg = 15;
+    var set_fg = false;
     var ret = '';
 
-    function add_fg_colour(nn, nb, c) {
-        ret += ascii(3) + (bright ? nb : nn);
+    function add_fg(nn, nb, c) {
+        ret += ascii(3);
+        if (bright) {
+            fg = nb;
+            ret += nb;
+        } else {
+            fg = nn;
+            ret += nn;
+        }
         last_colour = c.toUpperCase();
+        set_fg = true;
+    }
+
+    function add_bg(c) {
+        if (!set_fg) ret += ascii(3) + fg;
+        ret += ',' + c;
     }
 
     s = s.split('');
@@ -353,28 +368,52 @@ function ctrl_a_to_mirc(s) {
                     s.unshift('\1');
                     break;
                 case 'K':
-                    add_fg_colour(1, 14, c);
+                    add_fg(1, 14, c);
                     break;
                 case 'R':
-                    add_fg_colour(4, 7, c); // Red -> light red, high red -> orange
+                    add_fg(4, 7, c); // Red -> light red, high red -> orange
                     break;
                 case 'G':
-                    add_fg_colour(3, 9, c);
+                    add_fg(3, 9, c);
                     break;
                 case 'Y':
-                    add_fg_colour(5, 8, c);
+                    add_fg(5, 8, c);
                     break;
                 case 'B':
-                    add_fg_colour(2, 12, c);
+                    add_fg(2, 12, c);
                     break;
                 case 'M':
-                    add_fg_colour(6, 13, c);
+                    add_fg(6, 13, c);
                     break;
                 case 'C':
-                    add_fg_colour(10, 11, c);
+                    add_fg(10, 11, c);
                     break;
                 case 'W':
-                    add_fg_colour(15, 0, c);
+                    add_fg(15, 0, c);
+                    break;
+                case '0':
+                    add_bg(1);
+                    break;
+                case '1':
+                    add_bg(4);
+                    break;
+                case '2':
+                    add_bg(3);
+                    break;
+                case '3':
+                    add_bg(5);
+                    break;
+                case '4':
+                    add_bg(2);
+                    break;
+                case '5':
+                    add_bg(6);
+                    break;
+                case '6':
+                    add_bg(10);
+                    break;
+                case '7':
+                    add_bg(14);
                     break;
                 default:
                     break;