diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c
index ffc520358bc4ca544c99940ebe46a3d6e1c98387..e4d9b692c08f35bd2f66af7d7a74f6528b2c0884 100644
--- a/cdr/cdr_pgsql.c
+++ b/cdr/cdr_pgsql.c
@@ -146,8 +146,8 @@ static int pgsql_log(struct ast_cdr *cdr)
 			if (!value) {
 				if (cur->notnull && !cur->hasdefault) {
 					/* Field is NOT NULL (but no default), must include it anyway */
-					LENGTHEN_BUF1(strlen(cur->name));
-					lensql += snprintf(sql + lensql, sizesql - lensql, "%s,", cur->name);
+					LENGTHEN_BUF1(strlen(cur->name) + 2);
+					lensql += snprintf(sql + lensql, sizesql - lensql, "\"%s\",", cur->name);
 					LENGTHEN_BUF2(3);
 					strcat(sql2, "'',");
 					lensql2 += 3;
@@ -155,8 +155,8 @@ static int pgsql_log(struct ast_cdr *cdr)
 				continue;
 			}
 			
-			LENGTHEN_BUF1(strlen(cur->name));
-			lensql += snprintf(sql + lensql, sizesql - lensql, "%s,", cur->name);
+			LENGTHEN_BUF1(strlen(cur->name) + 2);
+			lensql += snprintf(sql + lensql, sizesql - lensql, "\"%s\",", cur->name);
 
 			if (strcmp(cur->name, "start") == 0 || strcmp(cur->name, "calldate") == 0) {
 				if (strncmp(cur->type, "int", 3) == 0) {