diff --git a/usr/klibc/tests/sscanf.c b/usr/klibc/tests/sscanf.c
index 0102ee3..c06aae4 100644
--- a/usr/klibc/tests/sscanf.c
+++ b/usr/klibc/tests/sscanf.c
@@ -3,35 +3,32 @@
 int main()
 {
 	int ret, err = 0, e1, e2;
-	double d1, d2;
-	const char j1[] = "3.0E+10", j2[] = "12E-01-0.1E-2";
 	const char a1[] = "3.0", a2[] = "-12,1000";
 
-	/* XXX: check sscanf returned values too */
-
-	/* double tests */
-	ret = sscanf(j1, "%11lf", &d1);
-	if (ret != 1) {
-		printf("Error wrong sscanf double return %d.\n", ret);
-		err++;
-	}
-	ret = sscanf(j2, "%11lf%11lf", &d1, &d2);
-	if (ret != 2) {
-		printf("Error wrong sscanf double return %d.\n", ret);
-		err++;
-	}
-
 	/* int tests */
 	ret = sscanf(a1, "%1d", &e1);
 	if (ret != 1) {
 		printf("Error wrong sscanf int return %d.\n", ret);
 		err++;
 	}
-	ret = sscanf(a2, "%1d%2d", &e1, &e2);
+	if (e1 != 3) {
+		printf("Error wrong sscanf int reading %d.\n", e1);
+		err++;
+	}
+	ret = sscanf(a2, "%3d,%4d", &e1, &e2);
 	if (ret != 2) {
 		printf("Error wrong sscanf int return %d.\n", ret);
 		err++;
 	}
+	if (e1 != -12) {
+		printf("Error wrong sscanf int reading %d.\n", e1);
+		err++;
+	}
+	if (e2 != 1000) {
+		printf("Error wrong sscanf int reading %d.\n", e2);
+		err++;
+	}
+	/* XXX: add more int tests */
 
 	if (err)
 		return err;
