The important fact is that in the entire sequence of the initial frame's setup you never experience one of those strange ConfigureNotify events asking to shrink the frame. Why they happen only for subsequent frame creations will probably remain a mystery. A new mystery is that your creation of the initial frame has one xg_frame_set_char_size call followed by two ConfigureNotify events where the first event asks for 1328x1260 and the second one for 1328x1258 pixels. The same happens again after setting up the tool bar only that there the first event has 1328x1258 (which matches the previous) and the second one asks for 1280x1354 pixels. In the first event xg_frame_resized concludes that nothing changed, in the second event it notices a change. When I do the same thing on my system I get Frame size history of # x_create_frame_1 (5), TS=80x25~>720x550, NS=80x25~>736x550, IS=80x25~>736x550, MS=18x44 IH IV gui_figure_window_size (5), TS=720x550~>720x792, TC=80x25~>80x36, NS=736x550~>736x792, IS=736x550~>736x792, MS=18x44 IH IV scroll-bar-width (3), NS=736x792~>752x792, IS=736x792~>752x792, MS=90x110 scroll-bar-height (3), MS=90x110 x_create_frame_2 (0), MS=90x110 xg_frame_set_char_size, invisible, PS=752x792, XS=752x792, DS=752x792 xg_frame_set_char_size (5), MS=18x44 IH IV MapNotify, not hidden & not iconified, PS=752x792, DS=752x792 ConfigureNotify, PS=752x792, XS=752x792, DS=752x792 xg_frame_resized, unchanged, PS=752x792, XS=752x792 menu-bar-lines (2), MS=90x110 xg_frame_set_char_size, visible, PS=752x792, XS=752x792, DS=752x792 ConfigureNotify, PS=752x792, XS=752x792, DS=752x792 xg_frame_resized, unchanged, PS=752x792, XS=752x792 tool-bar-lines (2), MS=90x110 xg_frame_set_char_size, visible, PS=752x792, XS=752x792, DS=752x792 ConfigureNotify, PS=752x792, XS=752x792, DS=752x792 xg_frame_resized, unchanged, PS=752x792, XS=752x792 and the sizes requested by xg_frame_set_char_size and the ones received by ConfigureNotify remain the same throughout - 752x792. I have no hope that anyone will tell us what's going on here. Hence this new mystery will remain unsolved too, I presume. But maybe I'm missing an important detail here. I forgot whether creating an initial frame without menubar works reasonably on your system. So please do the same once more but this time with --eval "(setq default-frame-alist '((menu-bar-lines . 0)))" appended to your emacs call. This will conclude our experiments with the history of the initial frame. Next let's try the following: Upon receiving a ConfigureNotify event we don't call change_frame_size when _we_ conclude that nothing has changed. This conclusion might be wrong so let's _always_ process a ConfigureNotify event via change_frame_size with the trivial patch I attached as gtkutil-change.diff. If this doesn't accomplish anything (as I'd expect), let's try to be stubborn. For this purpose apply the less trivial patch attached as gtkutil-reject.diff, do (setq frame-size-history '(100)) C-x 5 2 (frame--size-history) and tell me what *frame-size-history* says in the new frame (if we're unlucky and I did something wrong, this might get your Emacs run into an infinite loop and you have to kill it by external means). martin