diff --git a/cdr/cdr_tds.c b/cdr/cdr_tds.c
index 14aa9b2bde9b81a685da7b644a08ebbf64ff508f..bc1be7e5ca5e41febcf5297938fa6ddd72a3247a 100644
--- a/cdr/cdr_tds.c
+++ b/cdr/cdr_tds.c
@@ -89,6 +89,7 @@ static char *name = "mssql";
 static char *config = "cdr_tds.conf";
 
 static char *hostname = NULL, *dbname = NULL, *dbuser = NULL, *password = NULL, *charset = NULL, *language = NULL;
+static char *table = NULL;
 
 static int connected = 0;
 
@@ -135,7 +136,7 @@ static int tds_log(struct ast_cdr *cdr)
 
 	sprintf(
 		sqlcmd,
-		"INSERT INTO cdr "
+		"INSERT INTO %s "
 		"("
 			"accountcode, "
 			"src, "
@@ -175,6 +176,7 @@ static int tds_log(struct ast_cdr *cdr)
 			"'%s', "	/* amaflags */
 			"'%s'"		/* uniqueid */
 		")",
+		table,
 		accountcode,
 		src,
 		dst,
@@ -415,6 +417,7 @@ static int tds_unload_module(void)
 	if (password) free(password);
 	if (charset) free(charset);
 	if (language) free(language);
+	if (table) free(table);
 
 	return 0;
 }
@@ -475,6 +478,13 @@ static int tds_load_module(void)
 	else
 		language = strdup("us_english");
 
+	ptr = ast_variable_retrieve(cfg,"global","table");
+	if (ptr == NULL) {
+		ast_log(LOG_DEBUG,"cdr_tds: table not specified.  Assuming cdr\n");
+		ptr = "cdr";
+	}
+	table = strdup(ptr);
+
 	ast_config_destroy(cfg);
 
 	mssql_connect();
diff --git a/configs/cdr_tds.conf.sample b/configs/cdr_tds.conf.sample
index 9fffec099fb30568e643b9b36c349b49160ec06f..d8c7d075cb038ad6d847d2f5333ece4dbf2cd075 100644
--- a/configs/cdr_tds.conf.sample
+++ b/configs/cdr_tds.conf.sample
@@ -7,3 +7,5 @@
 ;user=mangUsr
 ;password=
 ;charset=BIG5
+;table=cdr
+