diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c
index 8e05059c7c..cea5db904f 100644
--- a/src/mod/endpoints/mod_sofia/sofia.c
+++ b/src/mod/endpoints/mod_sofia/sofia.c
@@ -915,8 +915,9 @@ void *SWITCH_THREAD_FUNC sofia_profile_worker_thread_run(switch_thread_t *thread
 
 				switch_mutex_lock(profile->ireg_mutex);
 			
-				sprintf(sqlbuf + len, "begin;\n");
-				len += 7;
+				
+				sprintf(sqlbuf, "begin;\n");
+				sofia_glue_actually_execute_sql(profile, sqlbuf, NULL);
 
 				while (switch_queue_trypop(profile->sql_queue, &pop) == SWITCH_STATUS_SUCCESS && pop) {
 					char *sql = (char *) pop;
@@ -940,10 +941,13 @@ void *SWITCH_THREAD_FUNC sofia_profile_worker_thread_run(switch_thread_t *thread
 					free(pop);
 				}
 
-				sprintf(sqlbuf + len, "commit;\n");
-
 				//printf("TRANS:\n%s\n", sqlbuf);
 				sofia_glue_actually_execute_sql(profile, sqlbuf, NULL);
+
+				sprintf(sqlbuf, "commit;\n");
+				sofia_glue_actually_execute_sql(profile, sqlbuf, NULL);
+
+
 				switch_mutex_unlock(profile->ireg_mutex);
 				loop_count = 0;
 			}