diff --git a/modules/audio_coding/main/acm2/acm_receiver.cc b/modules/audio_coding/main/acm2/acm_receiver.cc
index 07c2784..5466c18 100644
--- a/modules/audio_coding/main/acm2/acm_receiver.cc
+++ b/modules/audio_coding/main/acm2/acm_receiver.cc
@@ -274,8 +274,9 @@
 
     int codec_id = RtpHeaderToCodecIndex(*header, incoming_payload);
     if (codec_id < 0) {
-      LOG_F(LS_ERROR) << "Payload-type " << header->payloadType
-          << " is not registered.";
+      LOG_F(LS_ERROR) << "Payload-type "
+                      << static_cast<int>(header->payloadType)
+                      << " is not registered.";
       return -1;
     }
     assert(codec_id < ACMCodecDB::kMaxNumCodecs);
@@ -340,8 +341,9 @@
 
   if (neteq_->InsertPacket(rtp_header, incoming_payload, length_payload,
                            receive_timestamp) < 0) {
-    LOG_FERR1(LS_ERROR, "AcmReceiver::InsertPacket", header->payloadType) <<
-        " Failed to insert packet";
+    LOG_FERR1(LS_ERROR, "AcmReceiver::InsertPacket",
+              static_cast<int>(header->payloadType))
+        << " Failed to insert packet";
     return -1;
   }
   return 0;
@@ -506,7 +508,7 @@
     if (neteq_->RemovePayloadType(decoders_[acm_codec_id].payload_type) !=
         NetEq::kOK) {
       LOG_F(LS_ERROR) << "Cannot remover payload "
-          << decoders_[acm_codec_id].payload_type;
+          << static_cast<int>(decoders_[acm_codec_id].payload_type);
       return -1;
     }
   }
@@ -519,8 +521,8 @@
         audio_decoder, neteq_decoder, payload_type);
   }
   if (ret_val != NetEq::kOK) {
-    LOG_FERR3(LS_ERROR, "AcmReceiver::AddCodec", acm_codec_id, payload_type,
-              channels);
+    LOG_FERR3(LS_ERROR, "AcmReceiver::AddCodec", acm_codec_id,
+              static_cast<int>(payload_type), channels);
     // Registration failed, delete the allocated space and set the pointer to
     // NULL, for the record.
     decoders_[acm_codec_id].registered = false;
@@ -560,7 +562,7 @@
         decoders_[n].registered = false;
       } else {
         LOG_F(LS_ERROR) << "Cannot remove payload "
-            << decoders_[n].payload_type;
+            << static_cast<int>(decoders_[n].payload_type);
         ret_val = -1;
       }
     }
@@ -576,7 +578,8 @@
     return 0;
   }
   if (neteq_->RemovePayloadType(payload_type) != NetEq::kOK) {
-    LOG_FERR1(LS_ERROR, "AcmReceiver::RemoveCodec", payload_type);
+    LOG_FERR1(LS_ERROR, "AcmReceiver::RemoveCodec",
+              static_cast<int>(payload_type));
     return -1;
   }
   CriticalSectionScoped lock(crit_sect_.get());
@@ -683,7 +686,8 @@
   CriticalSectionScoped lock(crit_sect_.get());
   int codec_index = PayloadType2CodecIndex(payload_type);
   if (codec_index < 0) {
-    LOG_FERR1(LS_ERROR, "AcmReceiver::DecoderByPayloadType", payload_type);
+    LOG_FERR1(LS_ERROR, "AcmReceiver::DecoderByPayloadType",
+              static_cast<int>(payload_type));
     return -1;
   }
   memcpy(codec, &ACMCodecDB::database_[codec_index], sizeof(CodecInst));
diff --git a/modules/audio_coding/neteq/neteq_impl.cc b/modules/audio_coding/neteq/neteq_impl.cc
index 4dd8a6a..537638d 100644
--- a/modules/audio_coding/neteq/neteq_impl.cc
+++ b/modules/audio_coding/neteq/neteq_impl.cc
@@ -182,7 +182,8 @@
   LOG_API2(static_cast<int>(rtp_payload_type), codec);
   int ret = decoder_database_->RegisterPayload(rtp_payload_type, codec);
   if (ret != DecoderDatabase::kOK) {
-    LOG_FERR2(LS_WARNING, RegisterPayload, rtp_payload_type, codec);
+    LOG_FERR2(LS_WARNING, RegisterPayload, static_cast<int>(rtp_payload_type),
+              codec);
     switch (ret) {
       case DecoderDatabase::kInvalidRtpPayloadType:
         error_code_ = kInvalidRtpPayloadType;
@@ -215,7 +216,8 @@
   int ret = decoder_database_->InsertExternal(rtp_payload_type, codec,
                                               sample_rate_hz, decoder);
   if (ret != DecoderDatabase::kOK) {
-    LOG_FERR2(LS_WARNING, InsertExternal, rtp_payload_type, codec);
+    LOG_FERR2(LS_WARNING, InsertExternal, static_cast<int>(rtp_payload_type),
+              codec);
     switch (ret) {
       case DecoderDatabase::kInvalidRtpPayloadType:
         error_code_ = kInvalidRtpPayloadType;
@@ -251,7 +253,7 @@
   } else {
     error_code_ = kOtherError;
   }
-  LOG_FERR1(LS_WARNING, Remove, rtp_payload_type);
+  LOG_FERR1(LS_WARNING, Remove, static_cast<int>(rtp_payload_type));
   return kFail;
 }
 
@@ -412,7 +414,7 @@
         decoder_database_->IsRed(rtp_header.header.payloadType) ||
         decoder_database_->IsComfortNoise(rtp_header.header.payloadType)) {
       LOG_F(LS_ERROR) << "Sync-packet with an unacceptable payload type "
-          << rtp_header.header.payloadType;
+          << static_cast<int>(rtp_header.header.payloadType);
       return kSyncPacketNotAccepted;
     }
     if (first_packet_ ||
@@ -1801,8 +1803,9 @@
                                              packet->payload_length);
       }
     } else {
-      LOG_FERR1(LS_WARNING, GetDecoder, packet->header.payloadType) <<
-          "Could not find a decoder for a packet about to be extracted.";
+      LOG_FERR1(LS_WARNING, GetDecoder,
+                static_cast<int>(packet->header.payloadType))
+          << "Could not find a decoder for a packet about to be extracted.";
       assert(false);
     }
     if (packet_duration <= 0) {
diff --git a/modules/rtp_rtcp/source/rtp_payload_registry.cc b/modules/rtp_rtcp/source/rtp_payload_registry.cc
index 727a4d3..25be1a5 100644
--- a/modules/rtp_rtcp/source/rtp_payload_registry.cc
+++ b/modules/rtp_rtcp/source/rtp_payload_registry.cc
@@ -91,7 +91,8 @@
         return 0;
       }
     }
-    LOG(LS_ERROR) << "Payload type already registered: " << payload_type;
+    LOG(LS_ERROR) << "Payload type already registered: "
+                  << static_cast<int>(payload_type);
     return -1;
   }
 
diff --git a/modules/rtp_rtcp/source/rtp_receiver_audio.cc b/modules/rtp_rtcp/source/rtp_receiver_audio.cc
index 7e37528..0235635 100644
--- a/modules/rtp_rtcp/source/rtp_receiver_audio.cc
+++ b/modules/rtp_rtcp/source/rtp_receiver_audio.cc
@@ -278,7 +278,7 @@
                                           specific_payload.Audio.channels,
                                           specific_payload.Audio.rate)) {
     LOG(LS_ERROR) << "Failed to create decoder for payload type: "
-                  << payload_name << "/" << payload_type;
+                  << payload_name << "/" << static_cast<int>(payload_type);
     return -1;
   }
   return 0;
diff --git a/modules/rtp_rtcp/source/rtp_receiver_impl.cc b/modules/rtp_rtcp/source/rtp_receiver_impl.cc
index 1cbc2ac..3640933 100644
--- a/modules/rtp_rtcp/source/rtp_receiver_impl.cc
+++ b/modules/rtp_rtcp/source/rtp_receiver_impl.cc
@@ -114,7 +114,7 @@
     if (rtp_media_receiver_->OnNewPayloadTypeCreated(payload_name, payload_type,
                                                      frequency) != 0) {
       LOG(LS_ERROR) << "Failed to register payload: " << payload_name << "/"
-                 << payload_type;
+                    << static_cast<int>(payload_type);
       return -1;
     }
   }
@@ -318,7 +318,7 @@
         rtp_header.payload_type_frequency, channels, rate)) {
       // New stream, same codec.
       LOG(LS_ERROR) << "Failed to create decoder for payload type: "
-                    << rtp_header.payloadType;
+                    << static_cast<int>(rtp_header.payloadType);
     }
   }
 }
diff --git a/modules/rtp_rtcp/source/rtp_receiver_video.cc b/modules/rtp_rtcp/source/rtp_receiver_video.cc
index 6fe3e1d..8c50b02 100644
--- a/modules/rtp_rtcp/source/rtp_receiver_video.cc
+++ b/modules/rtp_rtcp/source/rtp_receiver_video.cc
@@ -112,7 +112,7 @@
       callback->OnInitializeDecoder(
           id, payload_type, payload_name, kVideoPayloadTypeFrequency, 1, 0)) {
     LOG(LS_ERROR) << "Failed to created decoder for payload type: "
-                  << payload_type;
+                  << static_cast<int>(payload_type);
     return -1;
   }
   return 0;
diff --git a/modules/video_coding/main/source/codec_database.cc b/modules/video_coding/main/source/codec_database.cc
index 3bd65d6..5ae09d9 100644
--- a/modules/video_coding/main/source/codec_database.cc
+++ b/modules/video_coding/main/source/codec_database.cc
@@ -645,7 +645,7 @@
   const VCMDecoderMapItem* decoder_item = FindDecoderItem(payload_type);
   if (!decoder_item) {
     LOG(LS_ERROR) << "Can't find a decoder associated with payload type: "
-                  << payload_type;
+                  << static_cast<int>(payload_type);
     return NULL;
   }
   VCMGenericDecoder* ptr_decoder = NULL;
diff --git a/video_engine/vie_codec_impl.cc b/video_engine/vie_codec_impl.cc
index d4d7f7f..d90117a 100644
--- a/video_engine/vie_codec_impl.cc
+++ b/video_engine/vie_codec_impl.cc
@@ -653,7 +653,8 @@
   }
 
   if (video_codec.plType == 0 || video_codec.plType > 127) {
-    LOG(LS_ERROR) << "Invalif payload type: " << video_codec.plType;
+    LOG(LS_ERROR) << "Invalif payload type: "
+                  << static_cast<int>(video_codec.plType);
     return false;
   }
 
diff --git a/video_engine/vie_external_codec_impl.cc b/video_engine/vie_external_codec_impl.cc
index a1228ce..39a2e63 100644
--- a/video_engine/vie_external_codec_impl.cc
+++ b/video_engine/vie_external_codec_impl.cc
@@ -104,7 +104,7 @@
     bool decoder_render,
     int render_delay) {
   LOG(LS_INFO) << "Register external decoder for channel " << video_channel
-               << ", pl_type " << pl_type
+               << ", pl_type " << static_cast<int>(pl_type)
                << ", decoder_render " << decoder_render
                << ", render_delay " << render_delay;
   assert(decoder != NULL);
@@ -127,7 +127,7 @@
 int ViEExternalCodecImpl::DeRegisterExternalReceiveCodec(
     const int video_channel, const unsigned char pl_type) {
   LOG(LS_INFO) << "DeRegisterExternalReceiveCodec for channel " << video_channel
-               << ", pl_type " << pl_type;
+               << ", pl_type " << static_cast<int>(pl_type);
 
   ViEChannelManagerScoped cs(*(shared_data_->channel_manager()));
   ViEChannel* vie_channel = cs.Channel(video_channel);
