diff --git a/main/cdr.c b/main/cdr.c
index 183252438aeb7a843bc904999917f869ae93f7b6..5b68e8fed7b9e5e8e4eabefe07e8604f78b521d4 100644
--- a/main/cdr.c
+++ b/main/cdr.c
@@ -200,11 +200,13 @@ static void cdr_get_tv(struct timeval tv, const char *fmt, char *buf, int bufsiz
 {
 	if (fmt == NULL) {	/* raw mode */
 		snprintf(buf, bufsize, "%ld.%06ld", (long)tv.tv_sec, (long)tv.tv_usec);
-	} else {  
-		struct ast_tm tm;
-
-		ast_localtime(&tv, &tm, NULL);
-		ast_strftime(buf, bufsize, fmt, &tm);
+	} else {
+		if (tv.tv_sec) {
+			struct ast_tm tm;
+			
+			ast_localtime(&tv, &tm, NULL);
+			ast_strftime(buf, bufsize, fmt, &tm);
+		}
 	}
 }