diff --git a/skeletons/GeneralizedTime.c b/skeletons/GeneralizedTime.c
index 45a082b..e9aa478 100644
--- a/skeletons/GeneralizedTime.c
+++ b/skeletons/GeneralizedTime.c
@@ -559,18 +559,23 @@
 	/*
 	 * Deal with fractions.
 	 */
-	if(frac_base >= 10 && frac_value > 0) {
+	if(frac_base >= 10
+	&& frac_value > 0
+	/* 1001 ms? should ignore or adjust seconds */
+	&& (frac_value/frac_base) == 0
+	) {
 		char *end = p + 1 + 6;	/* '.' + maximum 6 digits */
-		char *z;
-		*p++ = '.';
+		char *z = p;
+		*z++ = '.';
+		frac_value %= frac_base;
 		do {
 			int digit;
 			frac_base /= 10;
 			digit = frac_value / frac_base;
 			frac_value %= frac_base;
-			*p++ = digit + 0x30;
-		} while(frac_base >= 10 && frac_value > 0 && p < end);
-		for(z = p - 1; *z == 0x30; --z);	/* Strip zeroes */
+			*z++ = digit + 0x30;
+		} while(frac_base >= 10 && frac_value > 0 && z < end);
+		for(--z; *z == 0x30; --z);	/* Strip zeroes */
 		p = z + (*z != '.');
 		size = p - buf;
 	}
diff --git a/skeletons/tests/check-GeneralizedTime.c b/skeletons/tests/check-GeneralizedTime.c
index abd44b0..c39904e 100644
--- a/skeletons/tests/check-GeneralizedTime.c
+++ b/skeletons/tests/check-GeneralizedTime.c
@@ -83,11 +83,67 @@
 	FREEMEM(gt.buf);
 }
 
+static void
+check_fractions() {
+	GeneralizedTime_t *gt = 0;
+	struct tm tm;
+
+	memset(&tm, 0, sizeof tm);
+	tm.tm_year = 70;
+	tm.tm_mday = 1;
+
+	gt = asn_time2GT_frac(gt, &tm, -1, -1, 1);
+	assert(gt);
+	printf("[%s]\n", gt->buf);
+	assert(strcmp((char *)gt->buf, "19700101000000Z") == 0);
+
+	gt = asn_time2GT_frac(gt, &tm, 0, 0, 1);
+	assert(gt);
+	printf("[%s]\n", gt->buf);
+	assert(strcmp((char *)gt->buf, "19700101000000Z") == 0);
+
+	gt = asn_time2GT_frac(gt, &tm, 0, -1, 1);
+	assert(gt);
+	printf("[%s]\n", gt->buf);
+	assert(strcmp((char *)gt->buf, "19700101000000Z") == 0);
+
+	gt = asn_time2GT_frac(gt, &tm, -1, 0, 1);
+	assert(gt);
+	printf("[%s]\n", gt->buf);
+	assert(strcmp((char *)gt->buf, "19700101000000Z") == 0);
+
+	gt = asn_time2GT_frac(gt, &tm, 10, 0, 1);
+	assert(gt);
+	printf("[%s]\n", gt->buf);
+	assert(strcmp((char *)gt->buf, "19700101000000Z") == 0);
+
+	/* Normalization should happen prior calling the _frac() */
+	gt = asn_time2GT_frac(gt, &tm, 55, 10, 1);
+	assert(gt);
+	printf("[%s]\n", gt->buf);
+	assert(strcmp((char *)gt->buf, "19700101000000Z") == 0);
+
+	gt = asn_time2GT_frac(gt, &tm, 10, 20, 1);
+	assert(gt);
+	printf("[%s]\n", gt->buf);
+	assert(strcmp((char *)gt->buf, "19700101000000.5Z") == 0);
+
+	gt = asn_time2GT_frac(gt, &tm, -10, 20, 1);
+	assert(gt);
+	printf("[%s]\n", gt->buf);
+	assert(strcmp((char *)gt->buf, "19700101000000Z") == 0);
+
+	FREEMEM(gt->buf);
+	FREEMEM(gt);
+}
+
 int
 main(int ac, char **av) {
 
 	(void)av;
 
+	check_fractions();
+
 	recognize("200401250", -1, 0);
 	recognize("2004012509300", -1, 0);
 	recognize("20040125093000-", -1, 0);
