Index: uspace/app/terminal/terminal.c
===================================================================
--- uspace/app/terminal/terminal.c	(revision 1bbc6dc64db723b798344b36c45a156bdd6ccc13)
+++ uspace/app/terminal/terminal.c	(revision 9aa51406268c5fdb75f1acc2ecb8049246f5645a)
@@ -1002,4 +1002,6 @@
 {
 	gfx_rect_t min_rect = { { 0, 0 }, { min_width, min_height } };
+	gfx_rect_t wmin_rect;
+	gfx_rect_t wrect;
 
 	ui_wnd_params_t wparams;
@@ -1017,7 +1019,12 @@
 
 	/* Compute wrect such that application area corresponds to rect. */
-	gfx_rect_t wrect;
 	ui_wdecor_rect_from_app(term->ui, wparams.style, &min_rect, &wrect);
-	gfx_rect_rtranslate(&wrect.p0, &wrect, &wparams.rect);
+	gfx_rect_rtranslate(&wrect.p0, &wrect, &wmin_rect);
+	wparams.min_size = wmin_rect.p1;
+
+	gfx_rect_t rect = { { 0, 0 }, { width, height } };
+	ui_wdecor_rect_from_app(term->ui, wparams.style, &rect, &rect);
+	term->off = rect.p0;
+	gfx_rect_rtranslate(&term->off, &rect, &wparams.rect);
 
 	rc = ui_window_create(term->ui, &wparams, &term->window);
@@ -1025,12 +1032,5 @@
 		return rc;
 
-	gfx_rect_t rect = { { 0, 0 }, { width, height } };
-	ui_wdecor_rect_from_app(term->ui, wparams.style, &rect, &rect);
-	term->off = rect.p0;
-	gfx_rect_rtranslate(&term->off, &rect, &wrect);
-
-	ui_window_resize(term->window, &wrect);
 	ui_window_set_cb(term->window, &terminal_window_cb, (void *) term);
-
 	return terminal_window_resize(term);
 }
Index: uspace/app/uidemo/uidemo.c
===================================================================
--- uspace/app/uidemo/uidemo.c	(revision 1bbc6dc64db723b798344b36c45a156bdd6ccc13)
+++ uspace/app/uidemo/uidemo.c	(revision 9aa51406268c5fdb75f1acc2ecb8049246f5645a)
@@ -741,4 +741,7 @@
 	}
 
+	/* Only allow making the window larger */
+	gfx_rect_dims(&params.rect, &params.min_size);
+
 	rc = ui_window_create(ui, &params, &window);
 	if (rc != EOK) {
Index: uspace/lib/ui/include/types/ui/window.h
===================================================================
--- uspace/lib/ui/include/types/ui/window.h	(revision 1bbc6dc64db723b798344b36c45a156bdd6ccc13)
+++ uspace/lib/ui/include/types/ui/window.h	(revision 9aa51406268c5fdb75f1acc2ecb8049246f5645a)
@@ -80,4 +80,6 @@
 	/** Window rectangle */
 	gfx_rect_t rect;
+	/** Minimum size to which window can be resized */
+	gfx_coord2_t min_size;
 	/** Window caption */
 	const char *caption;
Index: uspace/lib/ui/src/window.c
===================================================================
--- uspace/lib/ui/src/window.c	(revision 1bbc6dc64db723b798344b36c45a156bdd6ccc13)
+++ uspace/lib/ui/src/window.c	(revision 9aa51406268c5fdb75f1acc2ecb8049246f5645a)
@@ -343,6 +343,5 @@
 	dparams.rect = params->rect;
 	dparams.caption = params->caption;
-	/* Only allow making the window larger */
-	gfx_rect_dims(&params->rect, &dparams.min_size);
+	dparams.min_size = params->min_size;
 
 	/*
