diff --git a/BUILD b/BUILD
index db08f57fbf1f8310cc85252eef51a9a7058e03f4..faaef5198abcd31a92c03ea47971605756473507 100644
--- a/BUILD
+++ b/BUILD
@@ -41,7 +41,7 @@ g_stands_for = "green"
 
 core_version = "3.0.0-dev"
 
-version = "1.2.0"
+version = "1.2.1-pre2"
 
 grpc_cc_library(
     name = "gpr",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3a0787e2f1a9bf7c6919c633141c273ebc63b4fb..1543140c0aa62715257c282eeea66374e6932d21 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,7 +42,7 @@
 cmake_minimum_required(VERSION 2.8)
 
 set(PACKAGE_NAME      "grpc")
-set(PACKAGE_VERSION   "1.2.1-pre1")
+set(PACKAGE_VERSION   "1.2.1-pre2")
 set(PACKAGE_STRING    "${PACKAGE_NAME} ${PACKAGE_VERSION}")
 set(PACKAGE_TARNAME   "${PACKAGE_NAME}-${PACKAGE_VERSION}")
 set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/")
diff --git a/Makefile b/Makefile
index 4a32fed2c96f77dcec46f1282d5e9d44cd5f39db..041e4f5c7c51ad651ebe3585ea0e41faa1b83dbd 100644
--- a/Makefile
+++ b/Makefile
@@ -412,8 +412,8 @@ Q = @
 endif
 
 CORE_VERSION = 3.0.0-dev
-CPP_VERSION = 1.2.1-pre1
-CSHARP_VERSION = 1.2.1-pre1
+CPP_VERSION = 1.2.1-pre2
+CSHARP_VERSION = 1.2.1-pre2
 
 CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
 CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
diff --git a/build.yaml b/build.yaml
index 1ec134645ceaf6b1526416c34c643b0a2f816be7..49d64bd1da0e1f16f15eccddd89b90e832f7444d 100644
--- a/build.yaml
+++ b/build.yaml
@@ -14,7 +14,7 @@ settings:
   '#10': See the expand_version.py for all the quirks here
   core_version: 3.0.0-dev
   g_stands_for: green
-  version: 1.2.1-pre1
+  version: 1.2.1-pre2
 filegroups:
 - name: census
   public_headers:
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index c502c4440ebad59d4d1c8859deeacbe5f842a201..fe1f3e008b8309f17f06b95ef893e721c09d8d78 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -37,7 +37,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC-Core'
-  version = '1.2.1-pre1'
+  version = '1.2.1-pre2'
   s.version  = version
   s.summary  = 'Core cross-platform gRPC library, written in C'
   s.homepage = 'http://www.grpc.io'
diff --git a/gRPC-ProtoRPC.podspec b/gRPC-ProtoRPC.podspec
index 5fddf8fd8208ec0694a596a8293b81b6cecc914d..b5c172ee82e2a77045c50edd9778724572d44b68 100644
--- a/gRPC-ProtoRPC.podspec
+++ b/gRPC-ProtoRPC.podspec
@@ -36,7 +36,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC-ProtoRPC'
-  version = '1.2.1-pre1'
+  version = '1.2.1-pre2'
   s.version  = version
   s.summary  = 'RPC library for Protocol Buffers, based on gRPC'
   s.homepage = 'http://www.grpc.io'
diff --git a/gRPC-RxLibrary.podspec b/gRPC-RxLibrary.podspec
index 84478f56ea7c5673de89a57c63aa41e23894bb57..6c2736cd78e2fc96a074e83da89c01d912d22e9d 100644
--- a/gRPC-RxLibrary.podspec
+++ b/gRPC-RxLibrary.podspec
@@ -36,7 +36,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC-RxLibrary'
-  version = '1.2.1-pre1'
+  version = '1.2.1-pre2'
   s.version  = version
   s.summary  = 'Reactive Extensions library for iOS/OSX.'
   s.homepage = 'http://www.grpc.io'
diff --git a/gRPC.podspec b/gRPC.podspec
index dc1dd38a6e866442f0de731bfce57d58a6c492d2..7031b3d1449695e39f69105415f43a310eaf7cd2 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -35,7 +35,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC'
-  version = '1.2.1-pre1'
+  version = '1.2.1-pre2'
   s.version  = version
   s.summary  = 'gRPC client library for iOS/OSX'
   s.homepage = 'http://www.grpc.io'
diff --git a/package.json b/package.json
index 004f968ea2ff86e2259ed900acea71220aa2bc19..e75dfa88206b4b20a2c52a58f5a118f74560a12c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "grpc",
-  "version": "1.2.1-pre1",
+  "version": "1.2.1-pre2",
   "author": "Google Inc.",
   "description": "gRPC Library for Node",
   "homepage": "http://www.grpc.io/",
diff --git a/package.xml b/package.xml
index fc3d0923728129947d7874e7a0963f0a946fbca9..44a15c23a96aded19cb1d3b86ed0151afdc63254 100644
--- a/package.xml
+++ b/package.xml
@@ -13,8 +13,8 @@
  <date>2017-03-01</date>
  <time>16:06:07</time>
  <version>
-  <release>1.2.1RC1</release>
-  <api>1.2.1RC1</api>
+  <release>1.2.1RC2</release>
+  <api>1.2.1RC2</api>
  </version>
  <stability>
   <release>beta</release>
diff --git a/src/cpp/common/version_cc.cc b/src/cpp/common/version_cc.cc
index a40f8f0a28461c399fe05cf5a4d0c73dacf58bf0..593e17e77065227a33dab2d524bdd2c93d8ec29d 100644
--- a/src/cpp/common/version_cc.cc
+++ b/src/cpp/common/version_cc.cc
@@ -37,5 +37,5 @@
 #include <grpc++/grpc++.h>
 
 namespace grpc {
-grpc::string Version() { return "1.2.1-pre1"; }
+grpc::string Version() { return "1.2.1-pre2"; }
 }
diff --git a/src/csharp/Grpc.Auth/project.json b/src/csharp/Grpc.Auth/project.json
index 16584f9b14b27f2f48f2002745259d38e2b8ca95..6345946c39c2a6c8b5513cc4377a263fe5153ca2 100644
--- a/src/csharp/Grpc.Auth/project.json
+++ b/src/csharp/Grpc.Auth/project.json
@@ -1,5 +1,5 @@
 {
-  "version": "1.2.1-pre1",
+  "version": "1.2.1-pre2",
   "title": "gRPC C# Auth",
   "authors": [ "Google Inc." ],
   "copyright": "Copyright 2015, Google Inc.",
@@ -21,7 +21,7 @@
     }
   },
   "dependencies": {
-    "Grpc.Core": "1.2.1-pre1",
+    "Grpc.Core": "1.2.1-pre2",
     "Google.Apis.Auth": "1.21.0"
   },
   "frameworks": {
diff --git a/src/csharp/Grpc.Core.Testing/project.json b/src/csharp/Grpc.Core.Testing/project.json
index 960774c0d95d03696291bbd1a0cd3cd27ff5f8b3..7337e2d15a84ba947ea73373474d0b20c09c9508 100644
--- a/src/csharp/Grpc.Core.Testing/project.json
+++ b/src/csharp/Grpc.Core.Testing/project.json
@@ -1,5 +1,5 @@
 {
-  "version": "1.2.1-pre1",
+  "version": "1.2.1-pre2",
   "title": "gRPC C# Core Testing",
   "authors": [ "Google Inc." ],
   "copyright": "Copyright 2017, Google Inc.",
@@ -21,7 +21,7 @@
     }
   },
   "dependencies": {
-    "Grpc.Core": "1.2.1-pre1"
+    "Grpc.Core": "1.2.1-pre2"
   },
   "frameworks": {
     "net45": {
diff --git a/src/csharp/Grpc.Core/VersionInfo.cs b/src/csharp/Grpc.Core/VersionInfo.cs
index 25be59a61ce2dcb212d61e602f6b64bb59c343ba..976508dfac2d75160e96c4e1bf46d5d6c5e2be28 100644
--- a/src/csharp/Grpc.Core/VersionInfo.cs
+++ b/src/csharp/Grpc.Core/VersionInfo.cs
@@ -53,6 +53,6 @@ namespace Grpc.Core
         /// <summary>
         /// Current version of gRPC C#
         /// </summary>
-        public const string CurrentVersion = "1.2.1-pre1";
+        public const string CurrentVersion = "1.2.1-pre2";
     }
 }
diff --git a/src/csharp/Grpc.Core/project.json b/src/csharp/Grpc.Core/project.json
index 5338011dd2568b6aa9313e312226746033f37085..d0eb775978279c74fdd22938107098f3b756c1a1 100644
--- a/src/csharp/Grpc.Core/project.json
+++ b/src/csharp/Grpc.Core/project.json
@@ -1,5 +1,5 @@
 {
-  "version": "1.2.1-pre1",
+  "version": "1.2.1-pre2",
   "title": "gRPC C# Core",
   "authors": [ "Google Inc." ],
   "copyright": "Copyright 2015, Google Inc.",
diff --git a/src/csharp/Grpc.HealthCheck/project.json b/src/csharp/Grpc.HealthCheck/project.json
index 2a7ec78852df1a67458d88c0a352bee8dba4ef61..ff5429dba6b20cd4fa3b0ca33e737cc82d01ae02 100644
--- a/src/csharp/Grpc.HealthCheck/project.json
+++ b/src/csharp/Grpc.HealthCheck/project.json
@@ -1,5 +1,5 @@
 {
-  "version": "1.2.1-pre1",
+  "version": "1.2.1-pre2",
   "title": "gRPC C# Healthchecking",
   "authors": [ "Google Inc." ],
   "copyright": "Copyright 2015, Google Inc.",
@@ -21,7 +21,7 @@
     }
   },
   "dependencies": {
-    "Grpc.Core": "1.2.1-pre1",
+    "Grpc.Core": "1.2.1-pre2",
     "Google.Protobuf": "3.2.0"
   },
   "frameworks": {
diff --git a/src/csharp/Grpc.Reflection/project.json b/src/csharp/Grpc.Reflection/project.json
index 18bc2d8d699b4529705f899de7052fbe7b1d4650..ac7696e9074b473656f4131d534bdb09eeee8495 100644
--- a/src/csharp/Grpc.Reflection/project.json
+++ b/src/csharp/Grpc.Reflection/project.json
@@ -1,5 +1,5 @@
 {
-  "version": "1.2.1-pre1",
+  "version": "1.2.1-pre2",
   "title": "gRPC C# Reflection",
   "authors": [ "Google Inc." ],
   "copyright": "Copyright 2016, Google Inc.",
@@ -21,7 +21,7 @@
     }
   },
   "dependencies": {
-    "Grpc.Core": "1.2.1-pre1",
+    "Grpc.Core": "1.2.1-pre2",
     "Google.Protobuf": "3.2.0"
   },
   "frameworks": {
diff --git a/src/csharp/build_packages_dotnetcli.bat b/src/csharp/build_packages_dotnetcli.bat
index e4f75d3ba0156bd03f23a44177a0725f5fd55947..8a6f22f1fa3bc4f513d1faf7cbcda007ddfa041a 100755
--- a/src/csharp/build_packages_dotnetcli.bat
+++ b/src/csharp/build_packages_dotnetcli.bat
@@ -28,7 +28,7 @@
 @rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 @rem Current package versions
-set VERSION=1.2.1-pre1
+set VERSION=1.2.1-pre2
 set PROTOBUF_VERSION=3.0.0
 
 @rem Adjust the location of nuget.exe
diff --git a/src/csharp/build_packages_dotnetcli.sh b/src/csharp/build_packages_dotnetcli.sh
index a5a6b6108a8dd2828d3064d10c398c5803767586..56e24de19935d9023f379cdb9f4dbb84384e2cfb 100755
--- a/src/csharp/build_packages_dotnetcli.sh
+++ b/src/csharp/build_packages_dotnetcli.sh
@@ -66,7 +66,7 @@ dotnet pack --configuration Release Grpc.Auth/project.json --output ../../artifa
 dotnet pack --configuration Release Grpc.HealthCheck/project.json --output ../../artifacts
 dotnet pack --configuration Release Grpc.Reflection/project.json --output ../../artifacts
 
-nuget pack Grpc.nuspec -Version "1.2.1-pre1" -OutputDirectory ../../artifacts
-nuget pack Grpc.Tools.nuspec -Version "1.2.1-pre1" -OutputDirectory ../../artifacts
+nuget pack Grpc.nuspec -Version "1.2.1-pre2" -OutputDirectory ../../artifacts
+nuget pack Grpc.Tools.nuspec -Version "1.2.1-pre2" -OutputDirectory ../../artifacts
 
 (cd ../../artifacts && zip csharp_nugets_dotnetcli.zip *.nupkg)
diff --git a/src/node/health_check/package.json b/src/node/health_check/package.json
index a3966a4abbf045fd0eb27e047e2e855eb121fd13..630b3cba006d0678d3f0abccb509578f66735dab 100644
--- a/src/node/health_check/package.json
+++ b/src/node/health_check/package.json
@@ -1,6 +1,6 @@
 {
   "name": "grpc-health-check",
-  "version": "1.2.1-pre1",
+  "version": "1.2.1-pre2",
   "author": "Google Inc.",
   "description": "Health check service for use with gRPC",
   "repository": {
@@ -15,7 +15,7 @@
     }
   ],
   "dependencies": {
-    "grpc": "^1.2.1-pre1",
+    "grpc": "^1.2.1-pre2",
     "lodash": "^3.9.3",
     "google-protobuf": "^3.0.0"
   },
diff --git a/src/node/tools/package.json b/src/node/tools/package.json
index de64cca844b91b33faf68ac74f1e825dad358dea..98863c1d7768d10f2bd64effc2e6c3e6a0f2d750 100644
--- a/src/node/tools/package.json
+++ b/src/node/tools/package.json
@@ -1,6 +1,6 @@
 {
   "name": "grpc-tools",
-  "version": "1.2.1-pre1",
+  "version": "1.2.1-pre2",
   "author": "Google Inc.",
   "description": "Tools for developing with gRPC on Node.js",
   "homepage": "http://www.grpc.io/",
diff --git a/src/objective-c/!ProtoCompiler-gRPCPlugin.podspec b/src/objective-c/!ProtoCompiler-gRPCPlugin.podspec
index 906fea86b71b6d970cd84b32ac945a9710426d93..636b9f792aab7a73e63e5535c0d7680b14bc55ad 100644
--- a/src/objective-c/!ProtoCompiler-gRPCPlugin.podspec
+++ b/src/objective-c/!ProtoCompiler-gRPCPlugin.podspec
@@ -42,7 +42,7 @@ Pod::Spec.new do |s|
   # exclamation mark ensures that other "regular" pods will be able to find it as it'll be installed
   # before them.
   s.name     = '!ProtoCompiler-gRPCPlugin'
-  v = '1.2.1-pre1'
+  v = '1.2.1-pre2'
   s.version  = v
   s.summary  = 'The gRPC ProtoC plugin generates Objective-C files from .proto services.'
   s.description = <<-DESC
diff --git a/src/objective-c/GRPCClient/private/version.h b/src/objective-c/GRPCClient/private/version.h
index a623d2d772c8ee31cfb78c7f7e6c0105f70cc55b..9339adce4318bbef712b6c6e0e6169bbc3d98906 100644
--- a/src/objective-c/GRPCClient/private/version.h
+++ b/src/objective-c/GRPCClient/private/version.h
@@ -38,4 +38,4 @@
 // `tools/buildgen/generate_projects.sh`.
 
 
-#define GRPC_OBJC_VERSION_STRING @"1.2.1-pre1"
+#define GRPC_OBJC_VERSION_STRING @"1.2.1-pre2"
diff --git a/src/python/grpcio/grpc_version.py b/src/python/grpcio/grpc_version.py
index 5a0cf4df2e360e4c44423f215aaea89ce9021f82..418ca993bc743613a91936acc5944c26f80445cb 100644
--- a/src/python/grpcio/grpc_version.py
+++ b/src/python/grpcio/grpc_version.py
@@ -29,4 +29,4 @@
 
 # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_version.py.template`!!!
 
-VERSION='1.2.1rc1'
+VERSION='1.2.1rc2'
diff --git a/src/python/grpcio_health_checking/grpc_version.py b/src/python/grpcio_health_checking/grpc_version.py
index c401cdbbcaac21416875bb4cf43066065f27d028..00b7680a0f5975a89e7d97ef9e0a47b6437c09f6 100644
--- a/src/python/grpcio_health_checking/grpc_version.py
+++ b/src/python/grpcio_health_checking/grpc_version.py
@@ -29,4 +29,4 @@
 
 # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_health_checking/grpc_version.py.template`!!!
 
-VERSION='1.2.1rc1'
+VERSION='1.2.1rc2'
diff --git a/src/python/grpcio_reflection/grpc_version.py b/src/python/grpcio_reflection/grpc_version.py
index 83f5d950b14531097829df5daa00f8db2c14cb38..cf42d123ae379cf19e907d3105f47ee8a6ba9130 100644
--- a/src/python/grpcio_reflection/grpc_version.py
+++ b/src/python/grpcio_reflection/grpc_version.py
@@ -29,4 +29,4 @@
 
 # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_reflection/grpc_version.py.template`!!!
 
-VERSION='1.2.1rc1'
+VERSION='1.2.1rc2'
diff --git a/src/python/grpcio_tests/grpc_version.py b/src/python/grpcio_tests/grpc_version.py
index 3613aeee130ce7cae5a652fc91206284fe45e19c..acd2b85c95e85091a02d76b3acd934004484974d 100644
--- a/src/python/grpcio_tests/grpc_version.py
+++ b/src/python/grpcio_tests/grpc_version.py
@@ -29,4 +29,4 @@
 
 # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_tests/grpc_version.py.template`!!!
 
-VERSION='1.2.1rc1'
+VERSION='1.2.1rc2'
diff --git a/src/ruby/lib/grpc/version.rb b/src/ruby/lib/grpc/version.rb
index e9759ad206ec31450a6ee8002c821fc3090eb417..7d54034a2982cee2e5bbe0d6300f206a839d3df8 100644
--- a/src/ruby/lib/grpc/version.rb
+++ b/src/ruby/lib/grpc/version.rb
@@ -29,5 +29,5 @@
 
 # GRPC contains the General RPC module.
 module GRPC
-  VERSION = '1.2.1.pre1'
+  VERSION = '1.2.1.pre2'
 end
diff --git a/src/ruby/tools/version.rb b/src/ruby/tools/version.rb
index a11e53cb2bec7a278f9e50a89c52d08d039b0e62..d6a7be76efa9535c4eb5e9be78f69331c1da1adc 100644
--- a/src/ruby/tools/version.rb
+++ b/src/ruby/tools/version.rb
@@ -29,6 +29,6 @@
 
 module GRPC
   module Tools
-    VERSION = '1.2.1.pre1'
+    VERSION = '1.2.1.pre2'
   end
 end
diff --git a/tools/distrib/python/grpcio_tools/grpc_version.py b/tools/distrib/python/grpcio_tools/grpc_version.py
index 73f06ba875d20dab8384bc6f26a56a53df72da36..fede4440800b66155e988775c0084bec2f5934ff 100644
--- a/tools/distrib/python/grpcio_tools/grpc_version.py
+++ b/tools/distrib/python/grpcio_tools/grpc_version.py
@@ -29,4 +29,4 @@
 
 # AUTO-GENERATED FROM `$REPO_ROOT/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template`!!!
 
-VERSION='1.2.1rc1'
+VERSION='1.2.1rc2'
diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++
index 8b69893696b7271165fc110204e131b59f58922d..13734e8d76a783aac038da29715ce284c8b5c816 100644
--- a/tools/doxygen/Doxyfile.c++
+++ b/tools/doxygen/Doxyfile.c++
@@ -40,7 +40,7 @@ PROJECT_NAME           = "GRPC C++"
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 1.2.1-pre1
+PROJECT_NUMBER         = 1.2.1-pre2
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 823f9b016884feb27e0b5709f4d2127fc6ef52ef..dfef610a00b518a0c710787b9b7d4e6c1086ebbd 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -40,7 +40,7 @@ PROJECT_NAME           = "GRPC C++"
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 1.2.1-pre1
+PROJECT_NUMBER         = 1.2.1-pre2
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a