diff --git a/.gitignore b/.gitignore
index eabb198..90d5308 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,6 +29,7 @@
 .pydevproject
 .sonar
 .DS_Store
+.svn
 
 /contrib/.vagrant/
 /autoscan.log
diff --git a/compiler/cpp/src/generate/t_c_glib_generator.cc b/compiler/cpp/src/generate/t_c_glib_generator.cc
index 373e6a8..639f479 100644
--- a/compiler/cpp/src/generate/t_c_glib_generator.cc
+++ b/compiler/cpp/src/generate/t_c_glib_generator.cc
@@ -490,10 +490,7 @@
 
   return ttype->is_container()
          || ttype->is_struct()
-         || ttype->is_xception()
-         || (ttype->is_base_type()
-             && (((t_base_type *) ttype)->get_base()
-                  == t_base_type::TYPE_STRING));
+         || ttype->is_xception();
 }
 
 
@@ -1436,7 +1433,7 @@
 
       f_service_ << endl <<
         indent() << "gint32 rseqid;" << endl <<
-        indent() << "gchar * fname;" << endl <<
+        indent() << "gchar * fname = NULL;" << endl <<
         indent() << "ThriftMessageType mtype;" << endl <<
         indent() << "ThriftProtocol * protocol = " << 
                       this->nspace_uc << service_name_uc <<
@@ -1822,7 +1819,7 @@
 	f_types_impl_ << indent() << "}" << endl;
       } else if (t->is_list()) {
         t_type *etype = ((t_list *) t)->get_elem_type();
-        string destructor_function = "g_ptr_array_free";
+        string destructor_function = "g_ptr_array_unref";
 
         if (etype->is_base_type()) {
           t_base_type::t_base tbase = ((t_base_type *) etype)->get_base();
@@ -1835,7 +1832,7 @@
             case t_base_type::TYPE_I32:           
             case t_base_type::TYPE_I64:
             case t_base_type::TYPE_DOUBLE:
-              destructor_function = "g_array_free";
+              destructor_function = "g_array_unref";
               break;
             case t_base_type::TYPE_STRING:
               break;
@@ -1849,7 +1846,7 @@
         indent_up();
         f_types_impl_ <<
           indent() << destructor_function << " (tobject->" << name <<
-                       ", TRUE);" << endl;
+                       ");" << endl;
         f_types_impl_ << indent() << "tobject->" << name << " = NULL;" << endl;
         indent_down();
         f_types_impl_ << indent() << "}" << endl;
@@ -1873,7 +1870,7 @@
       f_types_impl_ << indent() << "{" << endl;
       indent_up();
       f_types_impl_ <<
-      indent() << "g_free (tobject->" << name << ");" << endl;
+      indent() << generate_free_func_from_type(t) << "(tobject->" << name << ");" << endl;
       f_types_impl_ << indent() << "tobject->" << name << " = NULL;" << endl;
       indent_down();
       f_types_impl_ << indent() << "}" << endl;
@@ -2859,6 +2856,9 @@
       case t_base_type::TYPE_DOUBLE:
         return "NULL";
       case t_base_type::TYPE_STRING:
+        if (((t_base_type *) ttype)->is_binary()) {
+            return "thrift_string_free";
+        }
         return "g_free";
       default:
         throw "compiler error: no hash table info for type";
diff --git a/compiler/cpp/src/thrifty.yy b/compiler/cpp/src/thrifty.yy
old mode 100755
new mode 100644
diff --git a/lib/c_glib/src/thrift/c_glib/protocol/thrift_binary_protocol.c b/lib/c_glib/src/thrift/c_glib/protocol/thrift_binary_protocol.c
index da59628..32a8000 100644
--- a/lib/c_glib/src/thrift/c_glib/protocol/thrift_binary_protocol.c
+++ b/lib/c_glib/src/thrift/c_glib/protocol/thrift_binary_protocol.c
@@ -806,6 +806,7 @@
     }
     xfer += ret;
   } else {
+    *len = (guint32) read_len;
     *buf = NULL;
   }
 
diff --git a/lib/c_glib/src/thrift/c_glib/thrift.c b/lib/c_glib/src/thrift/c_glib/thrift.c
index 0051df0..079cb51 100644
--- a/lib/c_glib/src/thrift/c_glib/thrift.c
+++ b/lib/c_glib/src/thrift/c_glib/thrift.c
@@ -30,3 +30,9 @@
   *list = g_list_append (*list, key);
 }
 
+void
+thrift_string_free (gpointer str)
+{
+	GByteArray* ptr = str;
+	g_byte_array_unref(ptr);
+}
diff --git a/lib/c_glib/src/thrift/c_glib/thrift.h b/lib/c_glib/src/thrift/c_glib/thrift.h
index 0636a2f..236b46f 100644
--- a/lib/c_glib/src/thrift/c_glib/thrift.h
+++ b/lib/c_glib/src/thrift/c_glib/thrift.h
@@ -33,5 +33,6 @@
 
 void thrift_hash_table_get_keys (gpointer key, gpointer value,
                                  gpointer user_data);
+void thrift_string_free (gpointer str);
 
 #endif // #ifndef _THRIFT_THRIFT_H
diff --git a/lib/c_glib/src/thrift/c_glib/thrift_application_exception.c b/lib/c_glib/src/thrift/c_glib/thrift_application_exception.c
index 2b8b395..64bd87a 100644
--- a/lib/c_glib/src/thrift/c_glib/thrift_application_exception.c
+++ b/lib/c_glib/src/thrift/c_glib/thrift_application_exception.c
@@ -171,9 +171,23 @@
 }
 
 void
+thrift_application_exception_finalize (GObject *object)
+{
+  ThriftApplicationException *tae = THRIFT_APPLICATION_EXCEPTION (object);
+
+  if (tae->__isset_message) {
+		g_free(tae->message);
+  }
+}
+
+void
 thrift_application_exception_class_init (ThriftApplicationExceptionClass *class)
 {
+  GObjectClass *gobject_class = G_OBJECT_CLASS(class);
   ThriftStructClass *cls = THRIFT_STRUCT_CLASS(class);
+
   cls->read = thrift_application_exception_read;
   cls->write = thrift_application_exception_write;
+
+  gobject_class->finalize = thrift_application_exception_finalize;
 }
diff --git a/lib/c_glib/src/thrift/c_glib/transport/thrift_buffered_transport.c b/lib/c_glib/src/thrift/c_glib/transport/thrift_buffered_transport.c
index a32e5ad..d6b67ed 100644
--- a/lib/c_glib/src/thrift/c_glib/transport/thrift_buffered_transport.c
+++ b/lib/c_glib/src/thrift/c_glib/transport/thrift_buffered_transport.c
@@ -69,6 +69,7 @@
                                      guint32 len, GError **error)
 {
   ThriftBufferedTransport *t = THRIFT_BUFFERED_TRANSPORT (transport);
+  gint ret = 0;
   guint32 want = len;
   guint32 got = 0;
   guchar tmpdata[len];
@@ -90,19 +91,25 @@
   // enough to satisfy the read.
   if (t->r_buf_size < want)
   {
-    got += THRIFT_TRANSPORT_GET_CLASS (t->transport)->read (t->transport,
+    if ((ret = THRIFT_TRANSPORT_GET_CLASS (t->transport)->read (t->transport,
                                                             tmpdata,
                                                             want,
-                                                            error);
+                                                            error)) < 0) {
+		return ret;
+	}
+	got += ret;
 
     // copy the data starting from where we left off
     memcpy (buf + have, tmpdata, got);
     return got + have; 
   } else {
-    got += THRIFT_TRANSPORT_GET_CLASS (t->transport)->read (t->transport,
+    if ((ret = THRIFT_TRANSPORT_GET_CLASS (t->transport)->read (t->transport,
                                                             tmpdata,
                                                             want,
-                                                            error);
+                                                            error)) < 0) {
+		return ret;
+	}
+	got += ret;
     t->r_buf = g_byte_array_append (t->r_buf, tmpdata, got);
     
     // hand over what we have up to what the caller wants
diff --git a/lib/c_glib/src/thrift/c_glib/transport/thrift_socket.c b/lib/c_glib/src/thrift/c_glib/transport/thrift_socket.c
index 694a84c..a371ace 100644
--- a/lib/c_glib/src/thrift/c_glib/transport/thrift_socket.c
+++ b/lib/c_glib/src/thrift/c_glib/transport/thrift_socket.c
@@ -54,20 +54,21 @@
 gboolean
 thrift_socket_open (ThriftTransport *transport, GError **error)
 {
-  struct hostent *hp = NULL;
+  struct hostent he, *hp = NULL;
   struct sockaddr_in pin;
+  int err;
+  char buf[1024];
 
   ThriftSocket *tsocket = THRIFT_SOCKET (transport);
   g_return_val_if_fail (tsocket->sd == 0, FALSE);
 
   /* lookup the destination host */
-  if ((hp = gethostbyname (tsocket->hostname)) == NULL)
-  {
+  if (gethostbyname_r(tsocket->hostname, &he, buf, 1024, &hp, &err) != 0 || hp == NULL) {
     /* host lookup failed, bail out with an error */
     g_set_error (error, THRIFT_TRANSPORT_ERROR, THRIFT_TRANSPORT_ERROR_HOST,
                  "host lookup failed for %s:%d - %s",
                  tsocket->hostname, tsocket->port,
-                 hstrerror (h_errno));
+                 hstrerror (err));
     return FALSE;
   }
 
@@ -130,7 +131,7 @@
   while (got < len)
   {
     ret = recv (socket->sd, buf+got, len-got, 0);
-    if (ret < 0)
+    if (ret <= 0)
     {
       g_set_error (error, THRIFT_TRANSPORT_ERROR,
                    THRIFT_TRANSPORT_ERROR_RECEIVE,
