-       /* load colors [16-255] ; same colors as xterm */
-       for(i = 16, r = 0; r < 6; r++) {
-               for(g = 0; g < 6; g++) {
-                       for(b = 0; b < 6; b++) {
-                               color.red = sixd_to_16bit(r);
-                               color.green = sixd_to_16bit(g);
-                               color.blue = sixd_to_16bit(b);
-                               if(!XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &color, &dc.col[i])) {
-                                       die("Could not allocate color %d\n", i);
-                               }
-                               i++;
-                       }
-               }
+       /* load colours [16-231] ; same colours as xterm */
+       for(i = 16; i < 6*6*6+16; i++) {
+               color.red   = sixd_to_16bit( ((i-16)/36)%6 );
+               color.green = sixd_to_16bit( ((i-16)/6) %6 );
+               color.blue  = sixd_to_16bit( ((i-16)/1) %6 );
+               if(!XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &color, &dc.col[i]))
+                       die("Could not allocate color %d\n", i);