--- thrift-0.8.0/compiler/cpp/src/generate/t_c_glib_generator.cc 2011-11-26 21:00:48.000000000 +0200 +++ thrift-0.8.0_patched/compiler/cpp/src/generate/t_c_glib_generator.cc 2012-07-25 15:54:30.000000000 +0300 @@ -1730,7 +1730,7 @@ string name = (*m_iter)->get_name(); string type_name_uc = to_upper_case (initial_caps_to_underscores((*m_iter)->get_type()->get_name())); - indent(f_types_impl_) << "object->" << name << " = g_object_new (" << this->nspace_uc << "TYPE_" << type_name_uc << ", NULL);" << endl; + indent(f_types_impl_) << "object->" << name << " = NULL;" << endl; } else if (t->is_xception()) { string name = (*m_iter)->get_name(); indent(f_types_impl_) << "object->" << name << " = NULL;" << endl; --- thrift-0.8.0/lib/c_glib/src/transport/thrift_socket.c 2011-11-26 21:00:36.000000000 +0200 +++ thrift-0.8.0_patched/lib/c_glib/src/transport/thrift_socket.c 2012-07-25 16:02:53.000000000 +0300 @@ -127,7 +127,7 @@ while (got < len) { - ret = recv (socket->sd, buf, len, 0); + ret = recv (socket->sd, buf + got, len - got, 0); if (ret < 0) { g_set_error (error, THRIFT_TRANSPORT_ERROR,