Index: uspace/app/uidemo/uidemo.c
===================================================================
--- uspace/app/uidemo/uidemo.c	(revision 1eaead40ef1e81dc0e203498597d60b2e71fcd27)
+++ uspace/app/uidemo/uidemo.c	(revision bb65ccb31c144be2b4feec192f1c785c3a4acde8)
@@ -44,4 +44,5 @@
 #include <ui/image.h>
 #include <ui/label.h>
+#include <ui/list.h>
 #include <ui/menubar.h>
 #include <ui/menuentry.h>
@@ -598,4 +599,5 @@
 	ui_menu_entry_t *mmodify;
 	ui_menu_entry_t *mabout;
+	ui_list_entry_attr_t eattr;
 	errno_t rc;
 
@@ -1183,4 +1185,83 @@
 
 	ui_tab_add(demo.tbasic, ui_fixed_ctl(demo.bfixed));
+
+	rc = ui_fixed_create(&demo.lfixed);
+	if (rc != EOK) {
+		printf("Error creating fixed layout.\n");
+		return rc;
+	}
+
+	rc = ui_list_create(window, false, &demo.list);
+	if (rc != EOK) {
+		printf("Error creating list.\n");
+		return rc;
+	}
+
+	ui_list_entry_attr_init(&eattr);
+
+	eattr.caption = "One";
+	rc = ui_list_entry_append(demo.list, &eattr, NULL);
+	if (rc != EOK) {
+		printf("Error adding list entry.\n");
+		return rc;
+	}
+
+	eattr.caption = "Two";
+	rc = ui_list_entry_append(demo.list, &eattr, NULL);
+	if (rc != EOK) {
+		printf("Error adding list entry.\n");
+		return rc;
+	}
+
+	eattr.caption = "Three";
+	rc = ui_list_entry_append(demo.list, &eattr, NULL);
+	if (rc != EOK) {
+		printf("Error adding list entry.\n");
+		return rc;
+	}
+
+	eattr.caption = "Four";
+	rc = ui_list_entry_append(demo.list, &eattr, NULL);
+	if (rc != EOK) {
+		printf("Error adding list entry.\n");
+		return rc;
+	}
+
+	eattr.caption = "Five";
+	rc = ui_list_entry_append(demo.list, &eattr, NULL);
+	if (rc != EOK) {
+		printf("Error adding list entry.\n");
+		return rc;
+	}
+
+	eattr.caption = "Six";
+	rc = ui_list_entry_append(demo.list, &eattr, NULL);
+	if (rc != EOK) {
+		printf("Error adding list entry.\n");
+		return rc;
+	}
+
+	/* FIXME: Auto layout */
+	if (ui_is_textmode(ui)) {
+		rect.p0.x = 4;
+		rect.p0.y = 5;
+		rect.p1.x = 41;
+		rect.p1.y = 10;
+	} else {
+		rect.p0.x = 15;
+		rect.p0.y = 88;
+		rect.p1.x = 245;
+		rect.p1.y = 173;
+	}
+
+	ui_list_set_rect(demo.list, &rect);
+
+	rc = ui_fixed_add(demo.lfixed, ui_list_ctl(demo.list));
+	if (rc != EOK) {
+		printf("Error adding control to layout.\n");
+		return rc;
+	}
+
+	ui_tab_add(demo.tlists, ui_fixed_ctl(demo.lfixed));
 
 	ui_window_add(window, ui_fixed_ctl(demo.fixed));
Index: uspace/app/uidemo/uidemo.h
===================================================================
--- uspace/app/uidemo/uidemo.h	(revision 1eaead40ef1e81dc0e203498597d60b2e71fcd27)
+++ uspace/app/uidemo/uidemo.h	(revision bb65ccb31c144be2b4feec192f1c785c3a4acde8)
@@ -42,4 +42,5 @@
 #include <ui/fixed.h>
 #include <ui/label.h>
+#include <ui/list.h>
 #include <ui/menu.h>
 #include <ui/menubar.h>
@@ -59,4 +60,5 @@
 	ui_fixed_t *fixed;
 	ui_fixed_t *bfixed;
+	ui_fixed_t *lfixed;
 	ui_menu_bar_t *mbar;
 	ui_menu_t *mfile;
@@ -80,4 +82,5 @@
 	ui_scrollbar_t *hscrollbar;
 	ui_scrollbar_t *vscrollbar;
+	ui_list_t *list;
 } ui_demo_t;
 
