diff --git a/channels/h323/Makefile b/channels/h323/Makefile
index c7b7d13f374a025d6b1bb958555248753804316a..56d8ec03d5a3155ccdbfaa7a0bb34ab6bebce86e 100755
--- a/channels/h323/Makefile
+++ b/channels/h323/Makefile
@@ -16,11 +16,21 @@ ifndef ASTETCDIR
 ASTETCDIR=/etc/asterisk
 endif
 
-CFLAGS += -DNDEBUG -DDO_CRASH -DDEBUG_THREADS
-CFLAGS  = -pipe -Wall -fPIC -Wmissing-prototypes -Wmissing-declarations 
-CFLAGS += -DP_LINUX  -D_REENTRANT -D_GNU_SOURCE
+#Uncomment if u want to attempt to include the G.729 stuff
+# This is a quick fix to work around the missing H323Capability
+# in Open H.323
+#
+#CFLAGS += -DWANT_G729
+#
 # This needs to be updated to deal with more than just little endian machines
+#
 CFLAGS += -march=$(shell uname -m) -DPBYTE_ORDER=PLITTLE_ENDIAN
+
+# Only change below if you know WTF your doing
+#
+CFLAGS += -DNDEBUG -DDO_CRASH -DDEBUG_THREADS
+CFLAGS += -pipe -Wall -fPIC -Wmissing-prototypes -Wmissing-declarations 
+CFLAGS += -DP_LINUX  -D_REENTRANT -D_GNU_SOURCE
 CFLAGS += -DP_HAS_SEMAPHORES -DP_SSL -DP_PTHREADS
 CFLAGS += -DPHAS_TEMPLATES -DPTRACING -DP_USE_PRAGMA 
 CFLAGS += -I$(PWLIBDIR)/include/ptlib/unix -I$(PWLIBDIR)/include 
diff --git a/channels/h323/README b/channels/h323/README
index 03374b82464377972a21b3fe2c952e2f1a186e43..438067419d1e514cee00f993fbb10af251e0416f 100755
--- a/channels/h323/README
+++ b/channels/h323/README
@@ -29,7 +29,10 @@ Warning: Older versions than listed will NOT work, but newer  versions
 ~should~ work but are untested and you would be on your own. 
 
 As of June 16th, 2003 the release version of Open H.323 does not compile 
-due to the G729Capability is missing. 
+due to the G729Capability is missing. If you want G.729 support see
+the Makefile.  
+
+
 
 
 Most common compile error:  
diff --git a/channels/h323/ast_h323.cpp b/channels/h323/ast_h323.cpp
index efd3a9847ddcda7b23e0962e08a32a95a5cd1e6b..15b7dbd8b17e3f0f64a3d5c4dba6eaf26f57b519 100755
--- a/channels/h323/ast_h323.cpp
+++ b/channels/h323/ast_h323.cpp
@@ -776,10 +776,12 @@ int h323_set_capability(int cap, int dtmfMode)
 		endPoint->SetCapability(0, 0, new SpeexNarrow6AudioCapability());
 	}
 
+#if WANT_G729
 	if (cap & AST_FORMAT_G729A) {
 		H323_G729ACapability *g729aCap;
 		endPoint->SetCapability(0, 0, g729aCap = new H323_G729ACapability);
 	}
+#endif
 	
 	if (cap & AST_FORMAT_G723_1) {
 		H323_G7231Capability *g7231Cap;
diff --git a/channels/h323/chan_h323.c b/channels/h323/chan_h323.c
index 98b0069aa3d650b57378a4535d53f508bc5b077f..e044e2396a1e5e581fc2abd653c0ea74c395b582 100755
--- a/channels/h323/chan_h323.c
+++ b/channels/h323/chan_h323.c
@@ -1551,7 +1551,7 @@ int reload(void)
 	if (gatekeeper_disable == 0) {
 		if (h323_set_gk(gatekeeper_discover, gatekeeper, secret)) {
 			ast_log(LOG_ERROR, "Gatekeeper registration failed.\n");
-		//	h323_end_process();
+			h323_end_process();
 			return -1;
 		}
 	}