diff -r f330c3a2dc76 dwm.c
--- a/dwm.c	Tue Mar 25 09:41:14 2008 +0000
+++ b/dwm.c	Wed Mar 26 22:08:49 2008 +0100
@@ -268,6 +268,7 @@ applyrules(Client *c) {
 			if(r->tag) {
 				c->tags[idxoftag(r->tag)] = True;
 				matched = True;
+				break;
 			}
 		}
 	}
@@ -534,21 +535,17 @@ drawbar(void) {
 		dc.w = textw(tags[i]);
 		if(seltags[i]) {
 			drawtext(tags[i], dc.sel, isurgent(i));
-			drawsquare(c && c->tags[i], isoccupied(i), isurgent(i), dc.sel);
 		}
 		else {
 			drawtext(tags[i], dc.norm, isurgent(i));
-			drawsquare(c && c->tags[i], isoccupied(i), isurgent(i), dc.norm);
-		}
-		dc.x += dc.w;
+		}
+		dc.x += dc.w + 1;
 	}
 	if(blw > 0) {
 		dc.w = blw;
-		drawtext(lt->symbol, dc.norm, False);
+		drawtext(NULL, dc.norm, False);
 		x = dc.x + dc.w;
 	}
-	else
-		x = dc.x;
 	dc.w = textw(stext);
 	dc.x = bw - dc.w;
 	if(dc.x < x) {
@@ -559,8 +556,7 @@ drawbar(void) {
 	if((dc.w = dc.x - x) > bh) {
 		dc.x = x;
 		if(c) {
-			drawtext(c->name, dc.sel, False);
-			drawsquare(False, c->isfloating, False, dc.sel);
+			drawtext(c->name, dc.norm, False);
 		}
 		else
 			drawtext(NULL, dc.norm, False);
@@ -1720,9 +1716,6 @@ toggletag(const char *arg) {
 		return;
 	i = idxoftag(arg);
 	sel->tags[i] = !sel->tags[i];
-	for(j = 0; j < LENGTH(tags) && !sel->tags[j]; j++);
-	if(j == LENGTH(tags))
-		sel->tags[i] = True; /* at least one tag must be enabled */
 	arrange();
 }
 
@@ -1732,9 +1725,6 @@ toggleview(const char *arg) {
 
 	i = idxoftag(arg);
 	seltags[i] = !seltags[i];
-	for(j = 0; j < LENGTH(tags) && !seltags[j]; j++);
-	if(j == LENGTH(tags))
-		seltags[i] = True; /* at least one tag must be viewed */
 	arrange();
 }
 
