Index: uspace/drv/time/cmos-rtc/cmos-rtc.c
===================================================================
--- uspace/drv/time/cmos-rtc/cmos-rtc.c	(revision eccdc9e2e71b83dea576137858c5053f5f9dfcfb)
+++ uspace/drv/time/cmos-rtc/cmos-rtc.c	(revision aa04e815dc4a768bf77681cd94922c042d85fc30)
@@ -285,7 +285,7 @@
 
 	/* Check if the RTC is working in BCD mode */
-	bcd_mode = rtc_register_read(rtc, RTC_STATUS_B) & RTC_MASK_BCD;
-
-	if (1 || bcd_mode) {
+	bcd_mode = !(rtc_register_read(rtc, RTC_STATUS_B) & RTC_MASK_BCD);
+
+	if (bcd_mode) {
 		t->tm_sec  = bcd2dec(t->tm_sec);
 		t->tm_min  = bcd2dec(t->tm_min);
@@ -299,4 +299,11 @@
 	t->tm_mon--;
 
+	if (t->tm_year < 100) {
+		/* tm_year is the number of years since 1900, it is not
+		 * possible it is < 100.
+		 */
+		t->tm_year += 100;
+	}
+
 	fibril_mutex_unlock(&rtc->mutex);
 	return EOK;
