diff --git a/src/mod/applications/mod_easyroute/mod_easyroute.c b/src/mod/applications/mod_easyroute/mod_easyroute.c
index 2ee12666bc..2150bb23c8 100644
--- a/src/mod/applications/mod_easyroute/mod_easyroute.c
+++ b/src/mod/applications/mod_easyroute/mod_easyroute.c
@@ -426,6 +426,14 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_easyroute_shutdown)
 #ifdef SWITCH_HAVE_ODBC
 	switch_odbc_handle_disconnect(globals.master_odbc);
 #endif
+	
+	switch_safe_free(globals.db_username);
+	switch_safe_free(globals.db_password);
+	switch_safe_free(globals.db_dsn);
+	switch_safe_free(globals.default_techprofile);
+	switch_safe_free(globals.default_gateway);
+	switch_safe_free(globals.custom_query);
+
 	return SWITCH_STATUS_UNLOAD;
 }
 
diff --git a/src/mod/applications/mod_enum/mod_enum.c b/src/mod/applications/mod_enum/mod_enum.c
index c4ee350ef3..3c38bebe0a 100644
--- a/src/mod/applications/mod_enum/mod_enum.c
+++ b/src/mod/applications/mod_enum/mod_enum.c
@@ -850,6 +850,9 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_enum_shutdown)
 	if (globals.pool) {
 		switch_core_destroy_memory_pool(&globals.pool);
 	}
+	
+	switch_safe_free(globals.root);
+	switch_safe_free(globals.isn_root);
 
 	return SWITCH_STATUS_UNLOAD;
 }
diff --git a/src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.c b/src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.c
index ed35eadc58..9ffb5d460c 100644
--- a/src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.c
+++ b/src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.c
@@ -35,7 +35,7 @@
 #include <fcntl.h>
 
 SWITCH_MODULE_LOAD_FUNCTION(mod_dialplan_directory_load);
-SWITCH_MODULE_DEFINITION(mod_dialplan_directory, mod_dialplan_directory_load, NULL, NULL);
+SWITCH_MODULE_DEFINITION(mod_dialplan_directory, mod_dialplan_directory_load, mod_dialplan_directory_shutdown, NULL);
 
 static struct {
 	char *directory_name;
@@ -142,11 +142,23 @@ SWITCH_STANDARD_DIALPLAN(directory_dialplan_hunt)
 }
 
 
+SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_enum_shutdown)
+{
+	switch_safe_free(globals.directory_name);
+	switch_safe_free(globals.host);
+	switch_safe_free(globals.dn);
+	switch_safe_free(globals.pass);
+	switch_safe_free(globals.base);
+}
+
+
 SWITCH_MODULE_LOAD_FUNCTION(mod_dialplan_directory_load)
 {
 	switch_dialplan_interface_t *dp_interface;
 
+	memset(&globals, 0, sizeof(globals));
 	load_config();
+	
 	/* connect my internal structure to the blank pointer passed to me */
 	*module_interface = switch_loadable_module_create_module_interface(pool, modname);
 	SWITCH_ADD_DIALPLAN(dp_interface, "directory", directory_dialplan_hunt);
diff --git a/src/mod/endpoints/mod_alsa/mod_alsa.c b/src/mod/endpoints/mod_alsa/mod_alsa.c
index 3308cc25b4..85060919fd 100644
--- a/src/mod/endpoints/mod_alsa/mod_alsa.c
+++ b/src/mod/endpoints/mod_alsa/mod_alsa.c
@@ -813,7 +813,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_alsa_load)
 		return SWITCH_STATUS_TERM;
 	}
 
-
+	memset(&globals, 0, sizeof(globals));
 
 	if ((status = load_config()) != SWITCH_STATUS_SUCCESS) {
 		return status;
@@ -939,6 +939,14 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_alsa_shutdown)
 		switch_core_codec_destroy(&globals.write_codec);
 	}
 	switch_core_hash_destroy(&globals.call_hash);
+	
+	switch_safe_free(globals.dialplan);
+	switch_safe_free(globals.cid_name);
+	switch_safe_free(globals.cid_num);
+	switch_safe_free(globals.ring_file);
+	switch_safe_free(globals.hold_file);
+	switch_safe_free(globals.timer_name);
+	switch_safe_free(globals.device_name);
 
 	return SWITCH_STATUS_SUCCESS;
 }
diff --git a/src/mod/endpoints/mod_dingaling/mod_dingaling.c b/src/mod/endpoints/mod_dingaling/mod_dingaling.c
index cf9a4cb4db..f8435cf4ab 100644
--- a/src/mod/endpoints/mod_dingaling/mod_dingaling.c
+++ b/src/mod/endpoints/mod_dingaling/mod_dingaling.c
@@ -1748,6 +1748,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_dingaling_load)
 	switch_api_interface_t *api_interface;
 
 	module_pool = pool;
+	
+	memset(&globals, 0, sizeof(globals));
 
 	load_config();
 
@@ -1889,6 +1891,11 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_dingaling_shutdown)
 
 
 	switch_core_hash_destroy(&globals.profile_hash);
+
+	switch_safe_free(globals.dialplan);
+	switch_safe_free(globals.codec_string);
+	switch_safe_free(globals.codec_rates_string);	
+	
 	return SWITCH_STATUS_SUCCESS;
 }
 
diff --git a/src/mod/endpoints/mod_iax/mod_iax.c b/src/mod/endpoints/mod_iax/mod_iax.c
index 1cec64993b..4fb019ad3a 100644
--- a/src/mod/endpoints/mod_iax/mod_iax.c
+++ b/src/mod/endpoints/mod_iax/mod_iax.c
@@ -802,6 +802,8 @@ switch_io_routines_t iax_io_routines = {
 
 SWITCH_MODULE_LOAD_FUNCTION(mod_iax_load)
 {
+	memset(&globals, 0, sizeof(globals));
+		
 	module_pool = pool;
 
 	*module_interface = switch_loadable_module_create_module_interface(pool, modname);
@@ -1148,6 +1150,12 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_iax_shutdown)
 		}
 		switch_yield(20000);
 	}
+	
+	switch_safe_free(globals.dialplan);
+	switch_safe_free(globals.codec_string);
+	switch_safe_free(globals.codec_rates_string);
+	switch_safe_free(globals.ip);
+	
 	return SWITCH_STATUS_SUCCESS;
 }
 
diff --git a/src/mod/endpoints/mod_reference/mod_reference.c b/src/mod/endpoints/mod_reference/mod_reference.c
index 91cf93b87d..60abb501e3 100644
--- a/src/mod/endpoints/mod_reference/mod_reference.c
+++ b/src/mod/endpoints/mod_reference/mod_reference.c
@@ -532,6 +532,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_reference_load)
 
 	module_pool = pool;
 
+	memset(&globals, 0, sizeof(globals));
+
 	load_config();
 
 	*module_interface = switch_loadable_module_create_module_interface(pool, modname);
@@ -565,6 +567,13 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_reference_shutdown)
 		}
 		switch_yield(20000);
 	}
+	
+	/* Free dynamically allocated strings */
+	switch_safe_free(globals.dialplan);
+	switch_safe_free(globals.codec_string);
+	switch_safe_free(globals.codec_rates_string);
+	switch_safe_free(globals.ip);
+	
 	return SWITCH_STATUS_SUCCESS;
 }
 
diff --git a/src/mod/endpoints/mod_skypiax/mod_skypiax.c b/src/mod/endpoints/mod_skypiax/mod_skypiax.c
index 7439b98d6c..547116e872 100644
--- a/src/mod/endpoints/mod_skypiax/mod_skypiax.c
+++ b/src/mod/endpoints/mod_skypiax/mod_skypiax.c
@@ -1071,6 +1071,13 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_skypiax_shutdown)
                          globals.SKYPIAX_INTERFACES[interface_id].skypiax_api_thread);
     }
   }
+
+  switch_safe_free(globals.dialplan);
+  switch_safe_free(globals.context);
+  switch_safe_free(globals.destination);
+  switch_safe_free(globals.codec_string);
+  switch_safe_free(globals.codec_rates_string);
+
   return SWITCH_STATUS_SUCCESS;
 }
 
diff --git a/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c b/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c
index fb1504dbc6..fb8ad359ce 100644
--- a/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c
+++ b/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c
@@ -1296,7 +1296,9 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_erlang_event_load)
 {
 	switch_application_interface_t *app_interface;
 	switch_api_interface_t *api_interface;
-
+	
+	memset(&prefs, 0, sizeof(prefs));
+	
 	switch_mutex_init(&globals.listener_mutex, SWITCH_MUTEX_NESTED, pool);
 	
 	/* intialize the unique reference stuff */
@@ -1517,6 +1519,10 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_erlang_event_shutdown)
 
 	switch_sleep(1500000); /* sleep for 1.5 seconds */
 
+	switch_safe_free(prefs.ip);
+	switch_safe_free(prefs.cookie);
+	switch_safe_free(prefs.nodename);
+
 	return SWITCH_STATUS_SUCCESS;
 }
 
diff --git a/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c b/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c
index f6b2cefcf4..e5d7f4d96c 100644
--- a/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c
+++ b/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c
@@ -267,6 +267,9 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_event_multicast_shutdown)
 
 	switch_core_hash_destroy(&globals.event_hash);
 
+	switch_safe_free(globals.address);
+	switch_safe_free(globals.bindings);
+
 	return SWITCH_STATUS_SUCCESS;
 }
 
diff --git a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c
index 6cf3a868e4..77f65776c6 100644
--- a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c
+++ b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c
@@ -471,6 +471,9 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_event_socket_shutdown)
 
 	switch_event_unbind(&globals.node);
 
+	switch_safe_free(prefs.ip);
+	switch_safe_free(prefs.password);	
+
 	return SWITCH_STATUS_SUCCESS;
 }
 
@@ -933,6 +936,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_event_socket_load)
 	switch_application_interface_t *app_interface;
 	switch_api_interface_t *api_interface;
 
+	memset(&globals, 0, sizeof(globals));
+
 	switch_mutex_init(&globals.listener_mutex, SWITCH_MUTEX_NESTED, pool);
 
 	memset(&listen_list, 0, sizeof(listen_list));
diff --git a/src/mod/loggers/mod_syslog/mod_syslog.c b/src/mod/loggers/mod_syslog/mod_syslog.c
index a2c0c9ea32..5f21aaf0da 100644
--- a/src/mod/loggers/mod_syslog/mod_syslog.c
+++ b/src/mod/loggers/mod_syslog/mod_syslog.c
@@ -152,6 +152,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_syslog_load)
 {
 	switch_status_t status;
 	*module_interface = &console_module_interface;
+	
+	memset(&globals, 0, sizeof(globals));
 
 	if ((status = load_config()) != SWITCH_STATUS_SUCCESS) {
 		return status;
@@ -162,6 +164,9 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_syslog_load)
 	setlogmask(LOG_UPTO(LOG_DEBUG));
 	switch_log_bind_logger(mod_syslog_logger, log_level, SWITCH_FALSE);
 
+	switch_safe_free(globals.ident);
+	switch_safe_free(globals.format);
+
 	return SWITCH_STATUS_SUCCESS;
 }
 
diff --git a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
index b2e90ee702..f8b2ba8c9d 100644
--- a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
+++ b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
@@ -851,6 +851,10 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_xml_rpc_shutdown)
 		switch_yield(100000);
 	} while (globals.running);
 
+	switch_safe_free(globals.realm);
+	switch_safe_free(globals.user);
+	switch_safe_free(globals.pass);
+
 	return SWITCH_STATUS_SUCCESS;
 }