diff --git a/talk/app/webrtc/videosource.cc b/talk/app/webrtc/videosource.cc
index 4551e5e..bb27b10 100644
--- a/talk/app/webrtc/videosource.cc
+++ b/talk/app/webrtc/videosource.cc
@@ -318,6 +318,8 @@
 
  private:
   cricket::VideoCapturer* capturer_;
+  int width_;
+  int height_;
 
   DISALLOW_COPY_AND_ASSIGN(FrameInputWrapper);
 };
diff --git a/webrtc/base/constructormagic.h b/webrtc/base/constructormagic.h
index 6971580..6b1244f 100644
--- a/webrtc/base/constructormagic.h
+++ b/webrtc/base/constructormagic.h
@@ -14,27 +14,27 @@
 // Undefine macros first, just in case. Some third-party includes have their own
 // version.
 
-// Put this in the declarations for a class to be unassignable.
 #undef DISALLOW_ASSIGN
 #define DISALLOW_ASSIGN(TypeName) \
-  void operator=(const TypeName&) = delete
+  void operator=(const TypeName&)
 
-// A macro to disallow the copy constructor and operator= functions. This should
-// be used in the declarations for a class.
+// A macro to disallow the evil copy constructor and operator= functions
+// This should be used in the private: declarations for a class.
 #undef DISALLOW_COPY_AND_ASSIGN
-#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
-  TypeName(const TypeName&) = delete;      \
+#define DISALLOW_COPY_AND_ASSIGN(TypeName)    \
+  TypeName(const TypeName&);                    \
   DISALLOW_ASSIGN(TypeName)
 
-// A macro to disallow all the implicit constructors, namely the default
-// constructor, copy constructor and operator= functions.
+// A macro to disallow all the implicit constructors, namely the
+// default constructor, copy constructor and operator= functions.
 //
-// This should be used in the declarations for a class that wants to prevent
-// anyone from instantiating it. This is especially useful for classes
-// containing only static methods.
+// This should be used in the private: declarations for a class
+// that wants to prevent anyone from instantiating it. This is
+// especially useful for classes containing only static methods.
 #undef DISALLOW_IMPLICIT_CONSTRUCTORS
 #define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
-  TypeName() = delete;                           \
+  TypeName();                                    \
   DISALLOW_COPY_AND_ASSIGN(TypeName)
 
+
 #endif  // WEBRTC_BASE_CONSTRUCTORMAGIC_H_
diff --git a/webrtc/base/logging.cc b/webrtc/base/logging.cc
index e28b2e1..e2ee115 100644
--- a/webrtc/base/logging.cc
+++ b/webrtc/base/logging.cc
@@ -195,7 +195,8 @@
   }
   uint32 delay = TimeSince(before);
   if (delay >= warn_slow_logs_delay_) {
-    rtc::LogMessage slow_log_warning(__FILE__, __LINE__, LS_WARNING);
+    LogMessage slow_log_warning =
+        rtc::LogMessage(__FILE__, __LINE__, LS_WARNING);
     // If our warning is slow, we don't want to warn about it, because
     // that would lead to inifinite recursion.  So, give a really big
     // number for the delay threshold.
diff --git a/webrtc/base/natserver.h b/webrtc/base/natserver.h
index 9c883f9..e987021 100644
--- a/webrtc/base/natserver.h
+++ b/webrtc/base/natserver.h
@@ -109,6 +109,7 @@
   bool ShouldFilterOut(TransEntry* entry, const SocketAddress& ext_addr);
 
   NAT* nat_;
+  SocketFactory* internal_;
   SocketFactory* external_;
   SocketAddress external_ip_;
   AsyncUDPSocket* udp_server_socket_;
diff --git a/webrtc/base/virtualsocketserver.cc b/webrtc/base/virtualsocketserver.cc
index a9ca98b..c2f0e01 100644
--- a/webrtc/base/virtualsocketserver.cc
+++ b/webrtc/base/virtualsocketserver.cc
@@ -98,6 +98,7 @@
                              int type,
                              bool async)
     : server_(server),
+      family_(family),
       type_(type),
       async_(async),
       state_(CS_CLOSED),
diff --git a/webrtc/base/virtualsocketserver.h b/webrtc/base/virtualsocketserver.h
index 065d843..c708bb4 100644
--- a/webrtc/base/virtualsocketserver.h
+++ b/webrtc/base/virtualsocketserver.h
@@ -306,6 +306,7 @@
   void SetLocalAddress(const SocketAddress& addr);
 
   VirtualSocketServer* server_;
+  int family_;
   int type_;
   bool async_;
   ConnState state_;
diff --git a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc
index d958d6c..a84d6f0 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc
+++ b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc
@@ -719,7 +719,8 @@
       next_frame_ms_(first_frame_offset_ms),
       next_frame_rand_ms_(0),
       now_ms_(0),
-      prototype_header_() {
+      prototype_header_(),
+      start_plotting_ms_(first_frame_offset_ms) {
   memset(&prototype_header_, 0, sizeof(prototype_header_));
   prototype_header_.ssrc = ssrc;
   prototype_header_.sequenceNumber = 0xf000u;
diff --git a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h
index cf4a649..ceaa637 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h
+++ b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h
@@ -370,6 +370,7 @@
   uint32_t capacity_kbps_;
   int64_t last_send_time_us_;
   rtc::scoped_ptr<DelayCapHelper> delay_cap_helper_;
+  int64_t max_delay_us_;
 
   DISALLOW_IMPLICIT_CONSTRUCTORS(ChokeFilter);
 };
@@ -446,6 +447,8 @@
   int64_t next_frame_rand_ms_;
   int64_t now_ms_;
   RTPHeader prototype_header_;
+  int64_t start_plotting_ms_;
+  uint32_t previous_bitrate_bps_;
 
   DISALLOW_IMPLICIT_CONSTRUCTORS(VideoSource);
 };
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_format_h264.cc b/webrtc/modules/rtp_rtcp/source/rtp_format_h264.cc
index aeef443..d8063b0 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_format_h264.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_format_h264.cc
@@ -153,7 +153,8 @@
                                      size_t max_payload_len)
     : payload_data_(NULL),
       payload_size_(0),
-      max_payload_len_(max_payload_len) {
+      max_payload_len_(max_payload_len),
+      frame_type_(frame_type) {
 }
 
 RtpPacketizerH264::~RtpPacketizerH264() {
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h b/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h
index a6e1424..4e92895 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h
@@ -84,6 +84,7 @@
   const size_t max_payload_len_;
   RTPFragmentationHeader fragmentation_;
   PacketQueue packets_;
+  FrameType frame_type_;
 
   DISALLOW_COPY_AND_ASSIGN(RtpPacketizerH264);
 };
diff --git a/webrtc/modules/video_coding/main/test/test_util.h b/webrtc/modules/video_coding/main/test/test_util.h
index fd11db6..11fb6d4 100644
--- a/webrtc/modules/video_coding/main/test/test_util.h
+++ b/webrtc/modules/video_coding/main/test/test_util.h
@@ -61,6 +61,7 @@
 
  private:
   std::string out_filename_;
+  uint32_t ssrc_;
   FILE* out_file_;
   FILE* timing_file_;
   int width_;
diff --git a/webrtc/overrides/webrtc/base/constructormagic.h b/webrtc/overrides/webrtc/base/constructormagic.h
new file mode 100644
index 0000000..91e2748
--- /dev/null
+++ b/webrtc/overrides/webrtc/base/constructormagic.h
@@ -0,0 +1,20 @@
+/*
+ *  Copyright 2009 The WebRTC Project Authors. All rights reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+// This file overrides the inclusion of webrtc/base/constructormagic.h
+// We do this because constructor magic defines DISALLOW_COPY_AND_ASSIGN,
+// but we want to use the version from Chromium.
+
+#ifndef OVERRIDES_WEBRTC_BASE_CONSTRUCTORMAGIC_H__
+#define OVERRIDES_WEBRTC_BASE_CONSTRUCTORMAGIC_H__
+
+#include "base/macros.h"
+
+#endif  // OVERRIDES_WEBRTC_BASE_CONSTRUCTORMAGIC_H__
