diff --git a/src/syncterm/htmlwin.cpp b/src/syncterm/htmlwin.cpp
index 96173846155f491ec318ac27bc0c9c2afc131d74..1f4598149569ad1bbcb0142576bd8a0fa993a2cc 100644
--- a/src/syncterm/htmlwin.cpp
+++ b/src/syncterm/htmlwin.cpp
@@ -49,6 +49,7 @@ static bool			html_thread_running=false;
 
 enum html_window_state {
 	 HTML_WIN_STATE_RAISED
+	,HTML_WIN_STATE_LOWERED
 	,HTML_WIN_STATE_ICONIZED
 	,HTML_WIN_STATE_HIDDEN
 };
@@ -178,6 +179,13 @@ void MyHTML::OnState(wxCommandEvent &event)
 				htmlWindow->Raise();
 				htmlWindow->SetFocus();
 				break;
+			case HTML_WIN_STATE_LOWERED:
+				if(!frame->IsShown())
+					frame->Show();
+				if(frame->IsIconized())
+					frame->Iconize(false);
+				frame->Lower();
+				break;
 			case HTML_WIN_STATE_ICONIZED:
 				if(!frame->IsShown())
 					frame->Show();
@@ -252,7 +260,7 @@ bool MyApp::OnInit()
 			, wxT("SyncTERM HTML")
 			, wxPoint(window_xpos,window_ypos)
 			, wxSize(window_width,window_height)
-			, wxCLOSE_BOX | wxMINIMIZE_BOX | wxCAPTION | wxCLIP_CHILDREN
+			, wxMINIMIZE_BOX | /* wxMAXIMIZE_BOX */ | wxRESIZE_BORDER | /* wxSYSTEM_MENU */ | wxCAPTION | wxCLOSE_BOX | /* wxCLIP_CHILDREN */
 	);
 	htmlWindow = new MyHTML(frame, HTML_ID);
 	htmlWindow->SetRelatedFrame(frame,wxT("SyncTERM HTML : %s"));
@@ -260,8 +268,6 @@ bool MyApp::OnInit()
 	wxInitAllImageHandlers();
     frame->Show();
     SetTopWindow( frame );
-	while(wxTheApp->Pending())
-		wxTheApp->Dispatch();
 	sem_post(&appstarted);
     return true;
 }
@@ -330,6 +336,13 @@ extern "C" {
 		sem_wait(&state_changed);
 	}
 	
+	void lower_html(void)
+	{
+		html_window_requested_state=HTML_WIN_STATE_LOWERED;
+		send_html_event(state_event);
+		sem_wait(&state_changed);
+	}
+
 	void html_commit(void)
 	{
 		pthread_mutex_lock(&update_mutex);
diff --git a/src/syncterm/htmlwin.h b/src/syncterm/htmlwin.h
index 11ad702859fb645803b03f1a778ba4bd4dfd221b..62c340e654b29550eb7651261691d9e0579eb7e2 100644
--- a/src/syncterm/htmlwin.h
+++ b/src/syncterm/htmlwin.h
@@ -15,6 +15,7 @@ int run_html(int width, int height, int xpos, int ypos, void(*callback)(const ch
 void hide_html(void);
 void iconize_html(void);
 void raise_html(void);
+void lower_html(void);
 void add_html_char(char ch);
 void add_html(const char *buf);
 void html_commit(void);
diff --git a/src/syncterm/term.c b/src/syncterm/term.c
index 14885816c0674e0f1bd60d8ca552e1ab9c6e895d..1ac5e1e8b79d6e3f1b39030328193254752a7739 100644
--- a/src/syncterm/term.c
+++ b/src/syncterm/term.c
@@ -40,7 +40,7 @@ static struct text_info	log_ti;
 #ifdef WITH_WXWIDGETS
 enum html_mode {
 	 HTML_MODE_HIDDEN
-	,HTML_MODE_ICONIZED
+	,HTML_MODE_LOWERED
 	,HTML_MODE_RAISED
 	,HTML_MODE_READING
 };
@@ -1326,8 +1326,10 @@ BOOL doterm(struct bbslist *bbs)
 											else
 												html_supported=HTML_NOTSUPPORTED;
 										}
-										if(html_supported==HTML_SUPPORTED)
+										if(html_supported==HTML_SUPPORTED) {
 											conn_send(htmlresponse, sizeof(htmlresponse)-1, 0);
+											hide_html();
+										}
 									}
 									else {
 										show_html("");
@@ -1384,8 +1386,8 @@ BOOL doterm(struct bbslist *bbs)
 #ifdef WITH_WXWIDGETS
 						if(html_mode==HTML_MODE_RAISED) {
 							if(html_startx!=wherex() || html_starty!=wherey()) {
-								iconize_html();
-								html_mode=HTML_MODE_ICONIZED;
+								lower_html();
+								html_mode=HTML_MODE_LOWERED;
 							}
 						}
 #endif