diff --git a/google3/third_party/libsrtp/crypto/include/integers.h b/google3/third_party/libsrtp/crypto/include/integers.h
index 7010efd..3515d13 100644
--- a/google3/third_party/libsrtp/crypto/include/integers.h
+++ b/google3/third_party/libsrtp/crypto/include/integers.h
@@ -98,7 +98,6 @@ typedef unsigned short int	uint16_t;
 typedef unsigned int		uint32_t;
 #endif
 
-
 #ifdef NO_64BIT_MATH
 typedef double uint64_t;
 /* assert that sizeof(double) == 8 */
diff --git a/google3/third_party/libsrtp/include/srtp.h b/google3/third_party/libsrtp/include/srtp.h
index 7f17853..bbaac95 100644
--- a/google3/third_party/libsrtp/include/srtp.h
+++ b/google3/third_party/libsrtp/include/srtp.h
@@ -50,10 +50,6 @@
 extern "C" {
 #endif
 
-#ifdef _MSC_VER
-#pragma pack(4)
-#endif
-
 #include "crypto_kernel.h" 
 
 /**
@@ -930,10 +926,6 @@ srtp_install_event_handler(srtp_event_handler_func_t func);
 #define SRTCP_E_BYTE_BIT 0x80
 #define SRTCP_INDEX_MASK 0x7fffffff
 
-#ifdef _MSC_VER
-#pragma pack()
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/google3/third_party/libsrtp/srtp/srtp.c b/google3/third_party/libsrtp/srtp/srtp.c
index 6010dd4..3fc52ee 100644
--- a/google3/third_party/libsrtp/srtp/srtp.c
+++ b/google3/third_party/libsrtp/srtp/srtp.c
@@ -1657,6 +1657,8 @@ srtp_unprotect_rtcp(srtp_t ctx, void *srtcp_hdr, int *pkt_octet_len) {
   srtp_stream_ctx_t *stream;
   int prefix_len;
   uint32_t seq_num;
+  int e_bit_in_packet;     /* whether the E-bit was found in the packet */
+  int sec_serv_confidentiality; /* whether confidentiality was requested */
 
   /* we assume the hdr is 32-bit aligned to start */
   /*
@@ -1694,7 +1696,10 @@ srtp_unprotect_rtcp(srtp_t ctx, void *srtcp_hdr, int *pkt_octet_len) {
       return err_status_no_ctx;
     } 
   }
-  
+
+  sec_serv_confidentiality = stream->rtcp_services == sec_serv_conf ||
+      stream->rtcp_services == sec_serv_conf_and_auth;
+
   /* get tag length from stream context */
   tag_len = auth_get_tag_length(stream->rtcp_auth); 
 
@@ -1714,8 +1719,12 @@ srtp_unprotect_rtcp(srtp_t ctx, void *srtcp_hdr, int *pkt_octet_len) {
    */
   trailer = (uint32_t *) ((char *) hdr +
 		     *pkt_octet_len -(tag_len + sizeof(srtcp_trailer_t)));
-  if (*((unsigned char *) trailer) & SRTCP_E_BYTE_BIT) {
-    enc_start = (uint32_t *)hdr + uint32s_in_rtcp_header;  
+  e_bit_in_packet = (*((unsigned char *) trailer) & SRTCP_E_BYTE_BIT) == SRTCP_E_BYTE_BIT;
+  if (e_bit_in_packet != sec_serv_confidentiality) {
+    return err_status_cant_check;
+  }
+  if (sec_serv_confidentiality) {
+    enc_start = (uint32_t *)hdr + uint32s_in_rtcp_header;
   } else {
     enc_octet_len = 0;
     enc_start = NULL; /* this indicates that there's no encryption */
diff --git a/google3/third_party/libsrtp/test/srtp_driver.c b/google3/third_party/libsrtp/test/srtp_driver.c
index f6a84f9..3c97072 100644
--- a/google3/third_party/libsrtp/test/srtp_driver.c
+++ b/google3/third_party/libsrtp/test/srtp_driver.c
@@ -1246,7 +1246,7 @@ srtp_create_big_policy(srtp_policy_t **list) {
    * loop over policy list, mallocing a new list and copying values
    * into it (and incrementing the SSRC value as we go along)
    */
-  tmp = NULL;
+  tmp = p = NULL;
   while (policy_array[i] != NULL) {
     p  = (srtp_policy_t*) malloc(sizeof(srtp_policy_t));
     if (p == NULL)
