diff --git a/spdy/core/spdy_framer.cc b/spdy/core/spdy_framer.cc
index fc9cc2e..a9252a1 100644
--- a/spdy/core/spdy_framer.cc
+++ b/spdy/core/spdy_framer.cc
@@ -307,7 +307,7 @@
 
   if (framer_->debug_visitor_ != nullptr) {
     const auto& header_block_frame_ir =
-        down_cast<const SpdyFrameWithHeaderBlockIR&>(frame_ir);
+        static_cast<const SpdyFrameWithHeaderBlockIR&>(frame_ir);
     const size_t header_list_size =
         GetUncompressedSerializedLength(header_block_frame_ir.header_block());
     framer_->debug_visitor_->OnSendCompressedFrame(
@@ -405,7 +405,7 @@
   return *(frame_ir_.get());
 }
 
-// TODO(yasong): remove all the down_casts.
+// TODO(yasong): remove all the static_casts.
 std::unique_ptr<SpdyFrameSequence> SpdyFramer::CreateIterator(
     SpdyFramer* framer,
     std::unique_ptr<const SpdyFrameIR> frame_ir) {
@@ -413,12 +413,12 @@
     case SpdyFrameType::HEADERS: {
       return SpdyMakeUnique<SpdyHeaderFrameIterator>(
           framer,
-          SpdyWrapUnique(down_cast<const SpdyHeadersIR*>(frame_ir.release())));
+          SpdyWrapUnique(static_cast<const SpdyHeadersIR*>(frame_ir.release())));
     }
     case SpdyFrameType::PUSH_PROMISE: {
       return SpdyMakeUnique<SpdyPushPromiseFrameIterator>(
           framer, SpdyWrapUnique(
-                      down_cast<const SpdyPushPromiseIR*>(frame_ir.release())));
+                      static_cast<const SpdyPushPromiseIR*>(frame_ir.release())));
     }
     case SpdyFrameType::DATA: {
       DVLOG(1) << "Serialize a stream end DATA frame for VTL";
diff --git a/spdy/core/spdy_protocol_test_utils.h b/spdy/core/spdy_protocol_test_utils.h
index 2a16cb1..bbec597 100644
--- a/spdy/core/spdy_protocol_test_utils.h
+++ b/spdy/core/spdy_protocol_test_utils.h
@@ -130,7 +130,7 @@
   }
   VLOG(1) << "VerifySpdyFrameIREquals not null";
   VERIFY_EQ(actual->frame_type(), expected->frame_type());
-  const E* actual2 = down_cast<const E*>(actual);
+  const E* actual2 = static_cast<const E*>(actual);
   return VerifySpdyFrameIREquals(*expected, *actual2);
 }
 
