Undoing the change that was made between 1.3.5 and 1.3.6 fixes the problem. I haven't changed the tag to 'patch' bacause I don't know whether to blame emacs or IceWM (I believe the former). Emacs23 with GTK frontend works fine with current IceWM. Both emacs22 (Xaw3d, Lenny) and emacs23-lucid (Xaw3d, Squeeze) are not usable with IceWM newer than 1.3.6 and require the patch.
--- a/src/wmframe.h 2010-08-09 03:35:52.000000000 +0400 +++ b/src/wmframe.h 2010-08-09 03:36:45.000000000 +0400 @@ -569,7 +569,6 @@ void setSize(int, int); void setWindowGeometry(const YRect &r) { YWindow::setGeometry(r); - performLayout(); } friend class MiniIcon; };