diff --git a/build.gradle b/build.gradle
index 0e0c039..92f608c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -15,7 +15,7 @@
     }
 
     compileJava {
-        options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
+        options.compilerArgs << "-Xlint:unchecked"
     }
 
     // External dependency management
diff --git a/core/src/main/java/io/grpc/Status.java b/core/src/main/java/io/grpc/Status.java
index 5566ba1..f1e39d9 100644
--- a/core/src/main/java/io/grpc/Status.java
+++ b/core/src/main/java/io/grpc/Status.java
@@ -31,7 +31,6 @@
 
 package io.grpc;
 
-import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Throwables;
@@ -376,7 +375,7 @@
 
   @Override
   public String toString() {
-    return MoreObjects.toStringHelper(this)
+    return Objects.toStringHelper(this)
         .add("code", code.name())
         .add("description", description)
         .add("cause", cause)
diff --git a/core/src/main/java/io/grpc/transport/AbstractClientStream.java b/core/src/main/java/io/grpc/transport/AbstractClientStream.java
index 15dd564..643460e 100644
--- a/core/src/main/java/io/grpc/transport/AbstractClientStream.java
+++ b/core/src/main/java/io/grpc/transport/AbstractClientStream.java
@@ -31,7 +31,7 @@
 
 package io.grpc.transport;
 
-import com.google.common.base.MoreObjects;
+import com.google.common.base.Objects;
 import com.google.common.base.Preconditions;
 
 import io.grpc.Metadata;
@@ -272,8 +272,8 @@
   protected abstract void sendCancel();
 
   @Override
-  protected MoreObjects.ToStringHelper toStringHelper() {
-    MoreObjects.ToStringHelper toStringHelper = super.toStringHelper();
+  protected Objects.ToStringHelper toStringHelper() {
+    Objects.ToStringHelper toStringHelper = super.toStringHelper();
     if (status != null) {
       toStringHelper.add("status", status);
     }
diff --git a/core/src/main/java/io/grpc/transport/AbstractStream.java b/core/src/main/java/io/grpc/transport/AbstractStream.java
index 0ee323b..8edd1ce 100644
--- a/core/src/main/java/io/grpc/transport/AbstractStream.java
+++ b/core/src/main/java/io/grpc/transport/AbstractStream.java
@@ -32,7 +32,7 @@
 package io.grpc.transport;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.MoreObjects;
+import com.google.common.base.Objects;
 import com.google.common.base.Preconditions;
 
 import java.io.InputStream;
@@ -295,8 +295,8 @@
     return toStringHelper().toString();
   }
 
-  protected MoreObjects.ToStringHelper toStringHelper() {
-    return MoreObjects.toStringHelper(this)
+  protected Objects.ToStringHelper toStringHelper() {
+    return Objects.toStringHelper(this)
         .add("id", id())
         .add("inboundPhase", inboundPhase().name())
         .add("outboundPhase", outboundPhase().name());
