diff --git a/channels/chan_h323.c b/channels/chan_h323.c
index 9c5724e34b57da91d0f0d367398e3d6ef128e97d..2591965b32e0424e165eff8f930ec7f96bacbebc 100755
--- a/channels/chan_h323.c
+++ b/channels/chan_h323.c
@@ -1251,9 +1251,10 @@ void connection_made(unsigned call_reference)
 	
 	p = find_call(call_reference);
 	
-	if (!p)
+	if (!p) {
 		ast_log(LOG_ERROR, "Something is wrong: connection\n");
-
+		return;
+	}
 
 	if (!p->owner) {
 		ast_log(LOG_ERROR, "Channel has no owner\n");
@@ -1295,25 +1296,25 @@ void chan_ringing(unsigned call_reference)
 void cleanup_call_details(call_details_t cd) 
 {
         if (cd.call_token) {
-                free((const char*)cd.call_token);
+                free(cd.call_token);
         }
         if (cd.call_source_aliases) {
-                free((const char*)cd.call_source_aliases);
+                free(cd.call_source_aliases);
         }
         if (cd.call_dest_alias) {
-                free((const char*)cd.call_dest_alias);
+                free(cd.call_dest_alias);
 	}
         if (cd.call_source_name) { 
-                free((const char*)cd.call_source_name);
+                free(cd.call_source_name);
         }
         if (cd.call_source_e164) {
-                free((const char*)cd.call_source_e164);
+                free(cd.call_source_e164);
         }
         if (cd.call_dest_e164) {
-                free((const char*)cd.call_dest_e164);
+                free(cd.call_dest_e164);
         }
         if (cd.sourceIp) {
-                free((const char*)cd.sourceIp);
+                free(cd.sourceIp);
         }
 }
 
diff --git a/channels/h323/ast_h323.cpp b/channels/h323/ast_h323.cpp
index 85b4e98cae5739199e18240808fd3c8ed402fd1b..ad52cbb7674213fb87b447bef71b7e5c601cdab4 100755
--- a/channels/h323/ast_h323.cpp
+++ b/channels/h323/ast_h323.cpp
@@ -1211,7 +1211,7 @@ int h323_soft_hangup(const char *data)
 }
 
 /* alas, this doesn't work :(   */
-void h323_native_bridge(const char *token, char *them, char *capability)
+void h323_native_bridge(const char *token, const char *them, char *capability)
 {
 	H323Channel *channel;
 	MyH323Connection *connection = (MyH323Connection *)endPoint->FindConnectionWithLock(token);
diff --git a/channels/h323/chan_h323.h b/channels/h323/chan_h323.h
index 4bf1d57279185faf89e5cee4899c782e7ee1681a..3e0e848f6d3e87d05a0511ca196ba5fd6a4c9edb 100755
--- a/channels/h323/chan_h323.h
+++ b/channels/h323/chan_h323.h
@@ -108,7 +108,7 @@ typedef struct call_details {
 } call_details_t;
 
 typedef struct rtp_info {
-	char *addr;
+	const char *addr;
 	unsigned int port;
 } rtp_info_t;
 
@@ -194,7 +194,7 @@ extern "C" {
 	/* H323 listener related funcions */
 	int h323_start_listener(int, struct sockaddr_in);
 
-	void h323_native_bridge(const char *, char *, char *);
+	void h323_native_bridge(const char *, const char *, char *);
 
 	/* Send a DTMF tone to remote endpoint */
 	void h323_send_tone(const char *call_token, char tone);