diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
index 1a3b79c..b4dfefc 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
@@ -608,9 +608,7 @@
 int ModuleRtpRtcpImpl::TimeToSendPadding(int bytes) {
   if (!IsDefaultModule()) {
     // Don't send from default module.
-    if (SendingMedia()) {
-      return rtp_sender_.TimeToSendPadding(bytes);
-    }
+    return rtp_sender_.TimeToSendPadding(bytes);
   } else {
     CriticalSectionScoped lock(critical_section_module_ptrs_.get());
     for (size_t i = 0; i < child_modules_.size(); ++i) {
diff --git a/modules/video_coding/main/interface/video_coding.h b/modules/video_coding/main/interface/video_coding.h
index cad0e5a..ef9209a 100644
--- a/modules/video_coding/main/interface/video_coding.h
+++ b/modules/video_coding/main/interface/video_coding.h
@@ -238,7 +238,7 @@
     // frame rate/dimensions need to be updated for video quality optimization
     //
     // Input:
-    //		- videoQMSettings  : The callback object to register.
+    //      - videoQMSettings  : The callback object to register.
     //
     // Return value      : VCM_OK, on success.
     //                     < 0,         on error
diff --git a/video_engine/vie_encoder.cc b/video_engine/vie_encoder.cc
index ba7862a..0955066 100644
--- a/video_engine/vie_encoder.cc
+++ b/video_engine/vie_encoder.cc
@@ -187,8 +187,13 @@
   qm_callback_ = new QMVideoSettingsCallback(&vpm_);
 
 #ifdef VIDEOCODEC_VP8
+  VideoCodecType codec_type = webrtc::kVideoCodecVP8;
+#else
+  VideoCodecType codec_type = webrtc::kVideoCodecI420;
+#endif
+
   VideoCodec video_codec;
-  if (vcm_.Codec(webrtc::kVideoCodecVP8, &video_codec) != VCM_OK) {
+  if (vcm_.Codec(codec_type, &video_codec) != VCM_OK) {
     return false;
   }
   {
@@ -202,21 +207,6 @@
   if (default_rtp_rtcp_->RegisterSendPayload(video_codec) != 0) {
     return false;
   }
-#else
-  VideoCodec video_codec;
-  if (vcm_.Codec(webrtc::kVideoCodecI420, &video_codec) == VCM_OK) {
-    {
-      CriticalSectionScoped cs(data_cs_.get());
-      send_padding_ = video_codec.numberOfSimulcastStreams > 1;
-    }
-    vcm_.RegisterSendCodec(&video_codec, number_of_cores_,
-                           default_rtp_rtcp_->MaxDataPayloadLength());
-    default_rtp_rtcp_->RegisterSendPayload(video_codec);
-  } else {
-    return false;
-  }
-#endif
-
   if (vcm_.RegisterTransportCallback(this) != 0) {
     return false;
   }
@@ -362,11 +352,10 @@
 
   // Set this module as sending right away, let the slave module in the channel
   // start and stop sending.
-  if (default_rtp_rtcp_->Sending() == false) {
-    if (default_rtp_rtcp_->SetSendingStatus(true) != 0) {
-      return -1;
-    }
+  if (default_rtp_rtcp_->SetSendingStatus(true) != 0) {
+    return -1;
   }
+
   bitrate_controller_->SetBitrateObserver(bitrate_observer_.get(),
                                           video_codec.startBitrate * 1000,
                                           video_codec.minBitrate * 1000,
