diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index bf94b864c198e46329893b028dbedb5f3151a4cc..35253f036320f68b127867e51cdff643de4ab8a8 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -9,6 +9,7 @@ Changelog
 * Output now displays IGATE as the source/destination instead of APRS-IS.
 * Made IGATE a reserved name in the configuration, it cannot be used for a TNC name.
 * Removed a catch-everything block, the result is exceptions will now cause the application to exit.
+* Fixed several bugs specific to python3, should now work under python3.
 
 0.0.4
 -----
diff --git a/src/apex/aprs/igate.py b/src/apex/aprs/igate.py
index b826884db77307d90822027e5ce23c616a5b1c6b..bb9b94c3da882b99bca2faaa3feadca8d2875037 100644
--- a/src/apex/aprs/igate.py
+++ b/src/apex/aprs/igate.py
@@ -100,7 +100,7 @@ class IGate(object):
 
         frame = aprs_util.encode_frame(frame_decoded)
         if 'TCP' in protocol:
-            self.aprsis_sock.sendall(frame)
+            self.aprsis_sock.sendall(frame.encode(encoding='UTF-8'))
             return True
         elif 'HTTP' in protocol:
             content = '\n'.join([self._auth, frame])