diff -ur ratpoison-1.4.0.orig/src/actions.c ratpoison-1.4.0/src/actions.c --- ratpoison-1.4.0.orig/src/actions.c 2006-03-15 18:27:17.000000000 -0700 +++ ratpoison-1.4.0/src/actions.c 2006-06-11 14:48:32.000000000 -0600 @@ -4428,7 +4428,7 @@ /* Grab the frame's number, but if it already exists request a new one. */ if (!numset_add_num (s->frames_numset, cur->number)) { - cur->number = numset_request (s->frames_numset); + cur->number = numset_request (s->frames_numset, 0/*offset*/); } /* Find the current frame based on last_access. */ diff -ur ratpoison-1.4.0.orig/src/frame.c ratpoison-1.4.0/src/frame.c --- ratpoison-1.4.0.orig/src/frame.c 2006-03-15 18:27:23.000000000 -0700 +++ ratpoison-1.4.0/src/frame.c 2006-06-11 14:48:35.000000000 -0600 @@ -129,7 +129,7 @@ f = xmalloc (sizeof (rp_frame)); init_frame(f); - f->number = numset_request (s->frames_numset); + f->number = numset_request (s->frames_numset, 0/*offset*/); return f; } diff -ur ratpoison-1.4.0.orig/src/group.c ratpoison-1.4.0/src/group.c --- ratpoison-1.4.0.orig/src/group.c 2006-03-15 17:31:24.000000000 -0700 +++ ratpoison-1.4.0/src/group.c 2006-06-11 14:51:37.000000000 -0600 @@ -34,7 +34,7 @@ /* Create the first group in the list (We always need at least one). */ - g = group_new (numset_request (group_numset), DEFAULT_GROUP_NAME); + g = group_new (numset_request (group_numset, 0/*offset*/), DEFAULT_GROUP_NAME); rp_current_group = g; list_add_tail (&g->node, &rp_groups); } @@ -85,7 +85,7 @@ { rp_group *g; - g = group_new (numset_request (group_numset), name); + g = group_new (numset_request (group_numset, 0/*offset*/), name); list_add_tail (&g->node, &rp_groups); return g; @@ -269,7 +269,7 @@ if (we) { - we->number = numset_request (g->numset); + we->number = numset_request (g->numset, 1/*offset*/); list_del (&we->node); group_insert_window (&g->mapped_windows, we); } @@ -466,7 +466,7 @@ list_del (&we->node); /* and shove it into the other one. */ - we->number = numset_request (to->numset); + we->number = numset_request (to->numset, 1/*offset*/); group_insert_window (&to->mapped_windows, we); } @@ -493,7 +493,7 @@ numset_release (from->numset, cur->number); list_del (&cur->node); - cur->number = numset_request (to->numset); + cur->number = numset_request (to->numset, 1/*offset*/); group_insert_window (&to->mapped_windows, cur); } } @@ -529,7 +529,7 @@ { /* Create the first group in the list (We always need at least one). */ - g = group_new (numset_request (group_numset), DEFAULT_GROUP_NAME); + g = group_new (numset_request (group_numset, 0/*offset*/), DEFAULT_GROUP_NAME); rp_current_group = g; list_add_tail (&g->node, &rp_groups); } diff -ur ratpoison-1.4.0.orig/src/manage.c ratpoison-1.4.0/src/manage.c --- ratpoison-1.4.0.orig/src/manage.c 2006-03-15 17:31:34.000000000 -0700 +++ ratpoison-1.4.0/src/manage.c 2006-06-11 14:50:21.000000000 -0600 @@ -817,7 +817,7 @@ /* Fill in the necessary data about the window */ update_window_information (win); - win->number = numset_request (rp_window_numset); + win->number = numset_request (rp_window_numset, 1/*offset*/); grab_top_level_keys (win->w); /* Put win in the mapped window list */ diff -ur ratpoison-1.4.0.orig/src/number.c ratpoison-1.4.0/src/number.c --- ratpoison-1.4.0.orig/src/number.c 2006-03-15 17:31:39.000000000 -0700 +++ ratpoison-1.4.0/src/number.c 2006-06-11 14:48:04.000000000 -0600 @@ -87,13 +87,13 @@ /* returns a unique number that can be used as the window number in the program bar. */ int -numset_request (struct numset *ns) +numset_request (struct numset *ns, int offset) { int i; /* look for a unique number, and add it to the list of taken numbers. */ - i = 0; + i = offset; while (!numset_add_num (ns, i)) i++; PRINT_DEBUG(("ns=%p request got %d\n", ns, i)); Only in ratpoison-1.4.0/src: number.c.orig diff -ur ratpoison-1.4.0.orig/src/number.h ratpoison-1.4.0/src/number.h --- ratpoison-1.4.0.orig/src/number.h 2006-03-15 17:31:40.000000000 -0700 +++ ratpoison-1.4.0/src/number.h 2006-06-11 14:50:30.000000000 -0600 @@ -39,7 +39,7 @@ struct numset *numset_new (); void numset_free (struct numset *ns); void numset_release (struct numset *ns, int n); -int numset_request (struct numset *ns); +int numset_request (struct numset *ns, int offset); int numset_add_num (struct numset *ns, int n); void numset_clear (struct numset *ns);