--- src/main.c.orig	2007-08-12 17:00:01.000000000 -0400
+++ src/main.c	2007-10-29 15:27:28.000000000 -0400
@@ -3477,11 +3477,11 @@
 	WnckWindow *win;
 	decor_t *d;
 
-	win = wnck_screen_get_active_window(screen);
+	win = wnck_screen_get_previously_active_window(screen);
 	if (win)
 	{
 		d = g_object_get_data(G_OBJECT(win), "decor");
-		if (d->pixmap && d->decorated)
+		if (d && d->pixmap && d->decorated)
 		{
 			d->active = wnck_window_is_active(win);
 			d->fs = (d->active ? d->fs->ws->fs_act : d->fs->ws->fs_inact);
@@ -3493,11 +3493,11 @@
 		}
 	}
 
-	win = wnck_screen_get_previously_active_window(screen);
+	win = wnck_screen_get_active_window(screen);
 	if (win)
 	{
 		d = g_object_get_data(G_OBJECT(win), "decor");
-		if (d->pixmap && d->decorated)
+		if (d && d->pixmap && d->decorated)
 		{
 			d->active = wnck_window_is_active(win);
 			d->fs = (d->active ? d->fs->ws->fs_act : d->fs->ws->fs_inact);
@@ -3558,6 +3558,8 @@
 	if (!get_window_prop(wnck_window_get_xid(win), select_window_atom, &window))
 		remove_frame_window(win);
 
+	g_object_set_data (G_OBJECT (win), "decor", NULL);
+
 	g_free(d);
 }
 
@@ -5567,7 +5569,7 @@
 
     if (status != DECOR_ACQUIRE_STATUS_SUCCESS)
     {
-		if (status == DECOR_ACQUIRE_STATUS_OTHER_DM_RUNNING)
+		if (status == DECOR_ACQUIRE_STATUS_FAILED)
 		{
 			fprintf (stderr,
 				 "%s: Could not acquire decoration manager "


syntax highlighted by Code2HTML, v. 0.9.1