diff --git a/spdy/core/priority_write_scheduler.h b/spdy/core/priority_write_scheduler.h
index 067153b..20c9c13 100644
--- a/spdy/core/priority_write_scheduler.h
+++ b/spdy/core/priority_write_scheduler.h
@@ -134,7 +134,7 @@
   }
 
   std::vector<StreamIdType> GetStreamChildren(
-      StreamIdType stream_id) const override {
+      StreamIdType /*stream_id*/) const override {
     return std::vector<StreamIdType>();
   }
 
diff --git a/spdy/core/spdy_protocol.h b/spdy/core/spdy_protocol.h
index 0454d73..92893d2 100644
--- a/spdy/core/spdy_protocol.h
+++ b/spdy/core/spdy_protocol.h
@@ -1013,7 +1013,7 @@
   virtual void VisitAltSvc(const SpdyAltSvcIR& altsvc) = 0;
   virtual void VisitPriority(const SpdyPriorityIR& priority) = 0;
   virtual void VisitData(const SpdyDataIR& data) = 0;
-  virtual void VisitUnknown(const SpdyUnknownIR& unknown) {
+  virtual void VisitUnknown(const SpdyUnknownIR& /*unknown*/) {
     // TODO(birenroy): make abstract.
   }
 
@@ -1038,17 +1038,17 @@
   // a list of name-value pairs.
   // |payload_len| is the uncompressed payload size.
   // |frame_len| is the compressed frame size.
-  virtual void OnSendCompressedFrame(SpdyStreamId stream_id,
-                                     SpdyFrameType type,
-                                     size_t payload_len,
-                                     size_t frame_len) {}
+  virtual void OnSendCompressedFrame(SpdyStreamId /*stream_id*/,
+                                     SpdyFrameType /*type*/,
+                                     size_t /*payload_len*/,
+                                     size_t /*frame_len*/) {}
 
   // Called when a frame containing a compressed payload of
   // name-value pairs is received.
   // |frame_len| is the compressed frame size.
-  virtual void OnReceiveCompressedFrame(SpdyStreamId stream_id,
-                                        SpdyFrameType type,
-                                        size_t frame_len) {}
+  virtual void OnReceiveCompressedFrame(SpdyStreamId /*stream_id*/,
+                                        SpdyFrameType /*type*/,
+                                        size_t /*frame_len*/) {}
 };
 
 // Calculates the number of bytes required to serialize a SpdyHeadersIR, not
