--- /dev/null
+Index: e16/src/E.h
+===================================================================
+--- e16.orig/src/E.h 2011-12-06 18:31:59.000000000 +0000
++++ e16/src/E.h 2011-12-06 16:23:55.000000000 +0000
+@@ -216,6 +216,7 @@
+ char update_while_moving;
+ char enable_sync_request;
+ char dragbar_nocover;
++ char ignore_transience;
+ } movres;
+ struct {
+ int movres;
+Index: e16/src/mod-misc.c
+===================================================================
+--- e16.orig/src/mod-misc.c 2011-12-06 18:31:59.000000000 +0000
++++ e16/src/mod-misc.c 2011-12-06 16:24:35.000000000 +0000
+@@ -159,6 +159,7 @@
+ CFG_ITEM_BOOL(Conf, movres.update_while_moving, 0),
+ CFG_ITEM_BOOL(Conf, movres.enable_sync_request, 0),
+ CFG_ITEM_BOOL(Conf, movres.dragbar_nocover, 0),
++ CFG_ITEM_BOOL(Conf, movres.ignore_transience, 1),
+
+ CFG_ITEM_INT(Conf, opacity.menus, 85),
+ CFG_ITEM_INT(Conf, opacity.movres, 60),
+Index: e16/src/ewin-ops.c
+===================================================================
+--- e16.orig/src/ewin-ops.c 2011-12-06 18:31:59.000000000 +0000
++++ e16/src/ewin-ops.c 2011-12-06 18:23:57.000000000 +0000
+@@ -389,7 +389,8 @@
+ #endif
+ }
+
+- if (flags & (MRF_DESK | MRF_MOVE | MRF_FLOAT | MRF_UNFLOAT))
++ if ((flags & (MRF_DESK | MRF_MOVE | MRF_FLOAT | MRF_UNFLOAT)) &&
++ !Conf.movres.ignore_transience)
+ {
+ lst = EwinListTransients(ewin, &num, 0);
+ for (i = 0; i < num; i++)
+@@ -552,20 +553,22 @@
+
+ ICCCM_Iconify(ewin);
+
+- lst = EwinListTransients(ewin, &num, 0);
+- for (i = 0; i < num; i++)
+- {
+- e = lst[i];
+- if (e->state.iconified)
+- continue;
++ if (!Conf.movres.ignore_transience) {
++ lst = EwinListTransients(ewin, &num, 0);
++ for (i = 0; i < num; i++)
++ {
++ e = lst[i];
++ if (e->state.iconified)
++ continue;
+
+- EwinIconify(e);
+- }
++ EwinIconify(e);
++ }
+ #if ENABLE_GNOME
+- if (lst && call_depth == 1)
+- GNOME_SetClientList();
++ if (lst && call_depth == 1)
++ GNOME_SetClientList();
+ #endif
+ Efree(lst);
++ }
+
+ EwinStateUpdate(ewin);
+ HintsSetWindowState(ewin);
+@@ -647,20 +650,22 @@
+ EwinShow(ewin);
+ ICCCM_DeIconify(ewin);
+
+- lst = EwinListTransients(ewin, &num, 0);
+- for (i = 0; i < num; i++)
+- {
+- e = lst[i];
+- if (!e->state.iconified)
+- continue;
++ if (!Conf.movres.ignore_transience) {
++ lst = EwinListTransients(ewin, &num, 0);
++ for (i = 0; i < num; i++)
++ {
++ e = lst[i];
++ if (!e->state.iconified)
++ continue;
+
+- EwinDeIconify1(e, dx, dy);
+- }
++ EwinDeIconify1(e, dx, dy);
++ }
+ #if ENABLE_GNOME
+- if (lst && call_depth == 1)
+- GNOME_SetClientList();
++ if (lst && call_depth == 1)
++ GNOME_SetClientList();
+ #endif
+- Efree(lst);
++ Efree(lst);
++ }
+
+ EwinStateUpdate(ewin);
+ HintsSetWindowState(ewin);
+Index: e16/src/ewins.c
+===================================================================
+--- e16.orig/src/ewins.c 2011-12-06 18:31:59.000000000 +0000
++++ e16/src/ewins.c 2011-12-06 17:13:30.000000000 +0000
+@@ -1395,10 +1395,12 @@
+ if (num == 0) /* Quit if stacking is unchanged */
+ goto done;
+
+- lst = EwinListTransients(ewin, &num, 1);
+- for (i = 0; i < num; i++)
+- EwinRaise(lst[i]);
+- Efree(lst);
++ if (!Conf.movres.ignore_transience) {
++ lst = EwinListTransients(ewin, &num, 1);
++ for (i = 0; i < num; i++)
++ EwinRaise(lst[i]);
++ Efree(lst);
++ }
+
+ if (call_depth == 1)
+ {
+@@ -1430,10 +1432,12 @@
+ if (num == 0) /* Quit if stacking is unchanged */
+ goto done;
+
+- lst = EwinListTransientFor(ewin, &num);
+- for (i = 0; i < num; i++)
+- EwinLower(lst[i]);
+- Efree(lst);
++ if (!Conf.movres.ignore_transience) {
++ lst = EwinListTransientFor(ewin, &num);
++ for (i = 0; i < num; i++)
++ EwinLower(lst[i]);
++ Efree(lst);
++ }
+
+ if (call_depth == 1)
+ {