diff --git a/BUILD b/BUILD
index 1969077e04831ee5ff17322144d375e1efe87cae..e9dd84754cee6f16dace24b00437e18ccb668c62 100644
--- a/BUILD
+++ b/BUILD
@@ -747,6 +747,7 @@ cc_library(
     "include/grpc++/create_channel.h",
     "include/grpc++/generic/async_generic_service.h",
     "include/grpc++/generic/generic_stub.h",
+    "include/grpc++/grpc++.h",
     "include/grpc++/impl/call.h",
     "include/grpc++/impl/client_unary_call.h",
     "include/grpc++/impl/grpc_library.h",
@@ -838,6 +839,7 @@ cc_library(
     "include/grpc++/create_channel.h",
     "include/grpc++/generic/async_generic_service.h",
     "include/grpc++/generic/generic_stub.h",
+    "include/grpc++/grpc++.h",
     "include/grpc++/impl/call.h",
     "include/grpc++/impl/client_unary_call.h",
     "include/grpc++/impl/grpc_library.h",
diff --git a/Makefile b/Makefile
index a51004440dbbcf762333318bfe53c2ce413527b9..dc011ce6867c1be4366453f797c82a869d691229 100644
--- a/Makefile
+++ b/Makefile
@@ -4608,6 +4608,7 @@ PUBLIC_HEADERS_CXX += \
     include/grpc++/create_channel.h \
     include/grpc++/generic/async_generic_service.h \
     include/grpc++/generic/generic_stub.h \
+    include/grpc++/grpc++.h \
     include/grpc++/impl/call.h \
     include/grpc++/impl/client_unary_call.h \
     include/grpc++/impl/grpc_library.h \
@@ -4853,6 +4854,7 @@ PUBLIC_HEADERS_CXX += \
     include/grpc++/create_channel.h \
     include/grpc++/generic/async_generic_service.h \
     include/grpc++/generic/generic_stub.h \
+    include/grpc++/grpc++.h \
     include/grpc++/impl/call.h \
     include/grpc++/impl/client_unary_call.h \
     include/grpc++/impl/grpc_library.h \
diff --git a/build.yaml b/build.yaml
index b48167a106aae7c6e285b2e376cc0b60e7c684fb..fd97705b25d4cd5a3784d75d0fb8963b88ada219 100644
--- a/build.yaml
+++ b/build.yaml
@@ -13,9 +13,9 @@ filegroups:
 - name: grpc++_base
   public_headers: [include/grpc++/channel.h, include/grpc++/client_context.h, include/grpc++/completion_queue.h,
     include/grpc++/create_channel.h, include/grpc++/generic/async_generic_service.h,
-    include/grpc++/generic/generic_stub.h, include/grpc++/impl/call.h, include/grpc++/impl/client_unary_call.h,
-    include/grpc++/impl/grpc_library.h, include/grpc++/impl/proto_utils.h, include/grpc++/impl/rpc_method.h,
-    include/grpc++/impl/rpc_service_method.h, include/grpc++/impl/serialization_traits.h,
+    include/grpc++/generic/generic_stub.h, include/grpc++/grpc++.h, include/grpc++/impl/call.h,
+    include/grpc++/impl/client_unary_call.h, include/grpc++/impl/grpc_library.h, include/grpc++/impl/proto_utils.h,
+    include/grpc++/impl/rpc_method.h, include/grpc++/impl/rpc_service_method.h, include/grpc++/impl/serialization_traits.h,
     include/grpc++/impl/service_type.h, include/grpc++/impl/sync.h, include/grpc++/impl/sync_cxx11.h,
     include/grpc++/impl/sync_no_cxx11.h, include/grpc++/impl/thd.h, include/grpc++/impl/thd_cxx11.h,
     include/grpc++/impl/thd_no_cxx11.h, include/grpc++/security/auth_context.h, include/grpc++/security/auth_metadata_processor.h,
diff --git a/doc/PROTOCOL-HTTP2.md b/doc/PROTOCOL-HTTP2.md
index d3fbb60d603fe62b75496c47d44e7abae2c38d20..02d4f28102b00e1f26c958fa67c47e9f07409f99 100644
--- a/doc/PROTOCOL-HTTP2.md
+++ b/doc/PROTOCOL-HTTP2.md
@@ -43,8 +43,9 @@ Request-Headers are delivered as HTTP2 headers in HEADERS + CONTINUATION frames.
 * **User-Agent** → “user-agent” {_structured user-agent string_}
 * **Message-Type** → “grpc-message-type” {_type name for message schema_}
 * **Custom-Metadata** → Binary-Header / ASCII-Header
-* **Binary-Header** → {lowercase ASCII header name ending in “-bin” } {_base64 encoded value_}
-* **ASCII-Header** → {lowercase ASCII header name} {_value_}
+* **Binary-Header** → {Header-Name “-bin” } {_base64 encoded value_}
+* **ASCII-Header** → Header-Name {_value_}
+* **Header-Name** → 1*( %x30-39 / %x61-7A / “_” / “-”) ; 0-9 a-z 
 
 
 HTTP2 requires that reserved headers, ones starting with “:” appear before all other headers. Additionally implementations should send **Timeout** immediately after the reserved headers and they should send the **Call-Definition** headers before sending **Custom-Metadata**.
diff --git a/src/core/client_config/resolvers/zookeeper_resolver.c b/src/core/client_config/resolvers/zookeeper_resolver.c
index e425913cd08e51712e0078e062e4b66a623c78e3..2594e6fae95283e7f4311d947987291fe27ad38b 100644
--- a/src/core/client_config/resolvers/zookeeper_resolver.c
+++ b/src/core/client_config/resolvers/zookeeper_resolver.c
@@ -182,6 +182,7 @@ static void zookeeper_on_resolved(void *arg,
   grpc_lb_policy *lb_policy;
   size_t i;
   if (addresses != NULL) {
+    grpc_lb_policy_args lb_policy_args;
     config = grpc_client_config_create();
     subchannels = gpr_malloc(sizeof(grpc_subchannel *) * addresses->naddrs);
     for (i = 0; i < addresses->naddrs; i++) {
@@ -191,8 +192,10 @@ static void zookeeper_on_resolved(void *arg,
       subchannels[i] = grpc_subchannel_factory_create_subchannel(
           r->subchannel_factory, &args);
     }
+    lb_policy_args.subchannels = subchannels;
+    lb_policy_args.num_subchannels = addresses->naddrs;
     lb_policy =
-        grpc_lb_policy_create(r->lb_policy_name, subchannels, addresses->naddrs);
+        grpc_lb_policy_create(r->lb_policy_name, &lb_policy_args);
     grpc_client_config_set_lb_policy(config, lb_policy);
     GRPC_LB_POLICY_UNREF(lb_policy, "construction");
     grpc_resolved_addresses_destroy(addresses);
diff --git a/src/core/iomgr/tcp_client_windows.c b/src/core/iomgr/tcp_client_windows.c
index 05198dbff4e72ddf75cccf75bf49faf4a67cc3ef..a42ec7cf11a31b46dd855542a18b328d87c4a0ee 100644
--- a/src/core/iomgr/tcp_client_windows.c
+++ b/src/core/iomgr/tcp_client_windows.c
@@ -77,7 +77,6 @@ static void on_alarm(void *acp, int occured) {
   async_connect *ac = acp;
   gpr_mu_lock(&ac->mu);
   /* If the alarm didn't occur, it got cancelled. */
-  gpr_log(GPR_DEBUG, "on_alarm: %p", ac->socket);
   if (ac->socket != NULL && occured) {
     grpc_winsocket_shutdown(ac->socket);
   }
@@ -96,8 +95,6 @@ static void on_connect(void *acp, int from_iocp) {
 
   gpr_mu_lock(&ac->mu);
 
-  gpr_log(GPR_DEBUG, "on_connect: %p", ac->socket);
-
   if (from_iocp) {
     DWORD transfered_bytes = 0;
     DWORD flags;
diff --git a/src/core/support/log_posix.c b/src/core/support/log_posix.c
index 021c4666d4190b5fc86df37ae979635f39d420e9..8b050dbee705c4f727b1c1f7ef9372c79b6c60f6 100644
--- a/src/core/support/log_posix.c
+++ b/src/core/support/log_posix.c
@@ -64,7 +64,7 @@ void gpr_log(const char *file, int line, gpr_log_severity severity,
   } else {
     message = allocated = gpr_malloc((size_t)ret + 1);
     va_start(args, format);
-    vsnprintf(message, ret + 1, format, args);
+    vsnprintf(message, (size_t)(ret + 1), format, args);
     va_end(args);
   }
   gpr_log_message(file, line, severity, message);
diff --git a/src/csharp/ext/grpc_csharp_ext.c b/src/csharp/ext/grpc_csharp_ext.c
index 70c0fbcc5030480f0e2dfe98bcbedcb5e22fd7fc..51e0728fb9dd17b7a7c6b88ecb7ed27a2836a620 100644
--- a/src/csharp/ext/grpc_csharp_ext.c
+++ b/src/csharp/ext/grpc_csharp_ext.c
@@ -252,7 +252,7 @@ GPR_EXPORT gpr_intptr GPR_CALLTYPE grpcsharp_batch_context_recv_message_length(
   if (!ctx->recv_message) {
     return -1;
   }
-  return grpc_byte_buffer_length(ctx->recv_message);
+  return (gpr_intptr)grpc_byte_buffer_length(ctx->recv_message);
 }
 
 /*
diff --git a/templates/gRPC.podspec.template b/templates/gRPC.podspec.template
index 060961f401d10289421946e93e3a3d098f0c8966..b1de0d7102f3ca90b72201866d29dff7bf903e44 100644
--- a/templates/gRPC.podspec.template
+++ b/templates/gRPC.podspec.template
@@ -63,17 +63,17 @@
   %>
   Pod::Spec.new do |s|
     s.name     = 'gRPC'
-    s.version  = '0.7.0'
+    s.version  = '0.11.0'
     s.summary  = 'gRPC client library for iOS/OSX'
     s.homepage = 'http://www.grpc.io'
     s.license  = 'New BSD'
     s.authors  = { 'The gRPC contributors' => 'grpc-packages@google.com' }
   
     # s.source = { :git => 'https://github.com/grpc/grpc.git',
-    #              :tag => 'release-0_10_0-objectivec-0.6.0' }
+    #              :tag => 'release-0_11_0-objectivec-0.11.0' }
   
-    s.ios.deployment_target = '6.0'
-    s.osx.deployment_target = '10.8'
+    s.ios.deployment_target = '7.1'
+    s.osx.deployment_target = '10.9'
     s.requires_arc = true
   
     objc_dir = 'src/objective-c'
@@ -152,6 +152,6 @@
   
       ss.dependency 'gRPC/GRPCClient'
       ss.dependency 'gRPC/RxLibrary'
-      ss.dependency 'Protobuf', '~> 3.0.0-alpha-3'
+      ss.dependency 'Protobuf', '~> 3.0.0-alpha-4'
     end
   end
diff --git a/test/core/end2end/dualstack_socket_test.c b/test/core/end2end/dualstack_socket_test.c
index ec3fb651051b9f14e18e926803da982f33456022..fec9667db866c7493dc68ffd31b516cd6147a8c6 100644
--- a/test/core/end2end/dualstack_socket_test.c
+++ b/test/core/end2end/dualstack_socket_test.c
@@ -267,7 +267,7 @@ void test_connect(const char *server_host, const char *client_host, int port,
 int external_dns_works(const char *host) {
   grpc_resolved_addresses *res = grpc_blocking_resolve_address(host, "80");
   if (res != NULL) {
-    gpr_free(res);
+    grpc_resolved_addresses_destroy(res);
     return 1;
   }
   return 0;
diff --git a/tools/dockerfile/grpc_java_base/Dockerfile b/tools/dockerfile/grpc_java_base/Dockerfile
index 7bf79c8e415eb1384ea17d56024c71844fe188c8..9b80bbf9bc4be77028a31eb6b2e179a7cd29b737 100644
--- a/tools/dockerfile/grpc_java_base/Dockerfile
+++ b/tools/dockerfile/grpc_java_base/Dockerfile
@@ -40,6 +40,7 @@ RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true
   apt-get update && \
   apt-get -y install \
       git \
+      libapr1 \
       oracle-java8-installer \
       && \
   apt-get clean && rm -r /var/cache/oracle-jdk8-installer/
diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++
index a3523417743cda7d9f847c2030e25b42cf6b96b7..5d592c8e0aefdc4957deb9d59217bf34849630c2 100644
--- a/tools/doxygen/Doxyfile.c++
+++ b/tools/doxygen/Doxyfile.c++
@@ -766,6 +766,7 @@ include/grpc++/completion_queue.h \
 include/grpc++/create_channel.h \
 include/grpc++/generic/async_generic_service.h \
 include/grpc++/generic/generic_stub.h \
+include/grpc++/grpc++.h \
 include/grpc++/impl/call.h \
 include/grpc++/impl/client_unary_call.h \
 include/grpc++/impl/grpc_library.h \
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index dfaeb43ca7a681e46dbb13dd6105621989f44f02..bbd1706fb059f6a03e6e6fdd1b5fc64a26a5433c 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -766,6 +766,7 @@ include/grpc++/completion_queue.h \
 include/grpc++/create_channel.h \
 include/grpc++/generic/async_generic_service.h \
 include/grpc++/generic/generic_stub.h \
+include/grpc++/grpc++.h \
 include/grpc++/impl/call.h \
 include/grpc++/impl/client_unary_call.h \
 include/grpc++/impl/grpc_library.h \
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 798306b8458aed2dda7aed7f7cd9d15f337b89b4..68fd6a6e5abf626de8fb77578c45523bd0fba834 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -13168,6 +13168,7 @@
       "include/grpc++/create_channel.h", 
       "include/grpc++/generic/async_generic_service.h", 
       "include/grpc++/generic/generic_stub.h", 
+      "include/grpc++/grpc++.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
@@ -13220,6 +13221,7 @@
       "include/grpc++/create_channel.h", 
       "include/grpc++/generic/async_generic_service.h", 
       "include/grpc++/generic/generic_stub.h", 
+      "include/grpc++/grpc++.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
@@ -13350,6 +13352,7 @@
       "include/grpc++/create_channel.h", 
       "include/grpc++/generic/async_generic_service.h", 
       "include/grpc++/generic/generic_stub.h", 
+      "include/grpc++/grpc++.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
@@ -13399,6 +13402,7 @@
       "include/grpc++/create_channel.h", 
       "include/grpc++/generic/async_generic_service.h", 
       "include/grpc++/generic/generic_stub.h", 
+      "include/grpc++/grpc++.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
diff --git a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj
index 7e8ed4464dfa4036ff7e1676394388fb0f8c868a..acb62acefbdf93d5e6111118b92e85f73803f6b1 100644
--- a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj
+++ b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj
@@ -219,6 +219,7 @@
     <ClInclude Include="..\..\..\include\grpc++\create_channel.h" />
     <ClInclude Include="..\..\..\include\grpc++\generic\async_generic_service.h" />
     <ClInclude Include="..\..\..\include\grpc++\generic\generic_stub.h" />
+    <ClInclude Include="..\..\..\include\grpc++\grpc++.h" />
     <ClInclude Include="..\..\..\include\grpc++\impl\call.h" />
     <ClInclude Include="..\..\..\include\grpc++\impl\client_unary_call.h" />
     <ClInclude Include="..\..\..\include\grpc++\impl\grpc_library.h" />
diff --git a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
index 7ef391a86bd313505315dec1ba715ebfbea966e3..96effe296194f38ee56e4739b532f116a1f85a48 100644
--- a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
+++ b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
@@ -102,6 +102,9 @@
     <ClInclude Include="..\..\..\include\grpc++\generic\generic_stub.h">
       <Filter>include\grpc++\generic</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\include\grpc++\grpc++.h">
+      <Filter>include\grpc++</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\include\grpc++\impl\call.h">
       <Filter>include\grpc++\impl</Filter>
     </ClInclude>
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj
index 8b2d85de916a2e8c4382695624383f39e03ad184..3a7f559a2397cc0f4208fff054dde0f2e545bdd4 100644
--- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj
+++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj
@@ -219,6 +219,7 @@
     <ClInclude Include="..\..\..\include\grpc++\create_channel.h" />
     <ClInclude Include="..\..\..\include\grpc++\generic\async_generic_service.h" />
     <ClInclude Include="..\..\..\include\grpc++\generic\generic_stub.h" />
+    <ClInclude Include="..\..\..\include\grpc++\grpc++.h" />
     <ClInclude Include="..\..\..\include\grpc++\impl\call.h" />
     <ClInclude Include="..\..\..\include\grpc++\impl\client_unary_call.h" />
     <ClInclude Include="..\..\..\include\grpc++\impl\grpc_library.h" />
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
index 74712feebaa483e1858a66800b98d9ad59487a0c..7d9cd4769dc6bc9b5db45a71ae208d822ae0beff 100644
--- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
@@ -117,6 +117,9 @@
     <ClInclude Include="..\..\..\include\grpc++\generic\generic_stub.h">
       <Filter>include\grpc++\generic</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\include\grpc++\grpc++.h">
+      <Filter>include\grpc++</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\include\grpc++\impl\call.h">
       <Filter>include\grpc++\impl</Filter>
     </ClInclude>
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
index 7e8ed4464dfa4036ff7e1676394388fb0f8c868a..acb62acefbdf93d5e6111118b92e85f73803f6b1 100644
--- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
@@ -219,6 +219,7 @@
     <ClInclude Include="..\..\..\include\grpc++\create_channel.h" />
     <ClInclude Include="..\..\..\include\grpc++\generic\async_generic_service.h" />
     <ClInclude Include="..\..\..\include\grpc++\generic\generic_stub.h" />
+    <ClInclude Include="..\..\..\include\grpc++\grpc++.h" />
     <ClInclude Include="..\..\..\include\grpc++\impl\call.h" />
     <ClInclude Include="..\..\..\include\grpc++\impl\client_unary_call.h" />
     <ClInclude Include="..\..\..\include\grpc++\impl\grpc_library.h" />
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
index 7ef391a86bd313505315dec1ba715ebfbea966e3..96effe296194f38ee56e4739b532f116a1f85a48 100644
--- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
@@ -102,6 +102,9 @@
     <ClInclude Include="..\..\..\include\grpc++\generic\generic_stub.h">
       <Filter>include\grpc++\generic</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\include\grpc++\grpc++.h">
+      <Filter>include\grpc++</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\include\grpc++\impl\call.h">
       <Filter>include\grpc++\impl</Filter>
     </ClInclude>