Index: uspace/lib/ui/src/progress.c
===================================================================
--- uspace/lib/ui/src/progress.c	(revision 2f1be23019121ef252e253d50391d830bc095887)
+++ uspace/lib/ui/src/progress.c	(revision 9389aaa0fa764143674ba06dd71818f2b66cf250)
@@ -40,4 +40,5 @@
 #include <gfx/text.h>
 #include <io/pos_event.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <str.h>
@@ -153,4 +154,5 @@
 	gfx_coord2_t pos;
 	gfx_text_fmt_t fmt;
+	char buf[6];
 	errno_t rc;
 
@@ -184,5 +186,7 @@
 	fmt.valign = gfx_valign_center;
 
-	rc = gfx_puttext(&pos, &fmt, "42 %");
+	snprintf(buf, sizeof(buf), "%u %%", progress->value);
+
+	rc = gfx_puttext(&pos, &fmt, buf);
 	if (rc != EOK)
 		goto error;
@@ -207,4 +211,5 @@
 	gfx_rect_t inside;
 	gfx_rect_t part;
+	gfx_coord_t width;
 	errno_t rc;
 
@@ -221,7 +226,9 @@
 	}
 
+	width = inside.p1.x - inside.p0.x;
+
 	/* Paint completed part. */
 	part.p0 = inside.p0;
-	part.p1.x = (inside.p0.x + inside.p1.x) / 2;
+	part.p1.x = inside.p0.x + width * progress->value / 100;
 	part.p1.y = inside.p1.y;
 
