diff -r 8e0e5e128a06 config.def.h
--- a/config.def.h	Fri May 30 23:03:03 2008 +0100
+++ b/config.def.h	Sat May 31 16:55:42 2008 +0200
@@ -51,7 +51,7 @@
 	{ MODKEY,                       XK_l,      setmfact,       (double[]){+0.05} },
 	{ MODKEY,                       XK_m,      togglemax,      NULL },
 	{ MODKEY,                       XK_Return, zoom,           NULL },
-	{ MODKEY,                       XK_Tab,    viewprevtag,    NULL },
+	{ MODKEY,                       XK_Tab,    view,           NULL },
 	{ MODKEY|ShiftMask,             XK_c,      killclient,     NULL },
 	{ MODKEY,                       XK_space,  togglelayout,   NULL },
 	{ MODKEY|ShiftMask,             XK_space,  togglefloating, NULL },
diff -r 8e0e5e128a06 dwm.c
--- a/dwm.c	Fri May 30 23:03:03 2008 +0100
+++ b/dwm.c	Sat May 31 16:55:42 2008 +0200
@@ -183,7 +183,6 @@
 void updatetitle(Client *c);
 void updatewmhints(Client *c);
 void view(const void *arg);
-void viewprevtag(const void *arg);
 int xerror(Display *dpy, XErrorEvent *ee);
 int xerrordummy(Display *dpy, XErrorEvent *ee);
 int xerrorstart(Display *dpy, XErrorEvent *ee);
@@ -1669,16 +1668,9 @@
 
 void
 view(const void *arg) {
-	if(*(int *)arg & TAGMASK) {
-		seltags ^= 1; /* toggle sel tagset */
+	seltags ^= 1; /* toggle sel tagset */
+	if(arg && (*(int *)arg & TAGMASK))
 		tagset[seltags] = *(int *)arg & TAGMASK;
-		arrange();
-	}
-}
-
-void
-viewprevtag(const void *arg) {
-	seltags ^= 1; /* toggle sel tagset */
 	arrange();
 }
 
