diff --git a/cdr/cdr_odbc.c b/cdr/cdr_odbc.c
index acd23270ab1885cdf8dc261d04cbb25ca37f5025..6cfe62211e4c6470719e8c2e7c0a94986b814e06 100755
--- a/cdr/cdr_odbc.c
+++ b/cdr/cdr_odbc.c
@@ -59,12 +59,8 @@ static int odbc_log(struct ast_cdr *cdr)
 	char sqlcmd[2048], timestr[128];
 	int res = 0;
 	struct tm tm;
-	struct timeval tv;
-	time_t t;
 
-	gettimeofday(&tv,NULL);
-	t = tv.tv_sec;
-	localtime_r(&t,&tm);
+	localtime_r(&cdr->start.tv_sec,&tm);
 
 	ast_mutex_lock(&odbc_lock);
 	strftime(timestr,128,DATE_FORMAT,&tm);
diff --git a/res/res_config_odbc.c b/res/res_config_odbc.c
index dead1233bbdd25f12e60ccd96e2d83458c891518..c836dbdcdc1a68d0c213a71c2292cc04dea22be6 100755
--- a/res/res_config_odbc.c
+++ b/res/res_config_odbc.c
@@ -111,7 +111,7 @@ static struct ast_config *config_odbc(char *file, struct ast_config *new_config_
   SQLBindCol(stmt,7,SQL_C_CHAR,&var_name,sizeof(var_name),&err);
   SQLBindCol(stmt,8,SQL_C_CHAR,&var_val,sizeof(var_val),&err);
 	
-  sprintf(sql,"select * from %s where filename='%s' and commented=0 order by filename,cat_metric,var_metric,id",table,file);
+  sprintf(sql,"select * from %s where filename='%s' and commented=0 order by filename,cat_metric desc,var_metric asc,id",table,file);
   res = SQLExecDirect(stmt,sql,SQL_NTS);
 	
   if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) {