address_v6 Ipv6Header::get_source_address() const
 {
     address_v6::bytes_type address; // 16 bytes
-    BOOST_ASSERT( 16 == address.size() );
+    BOOST_ASSERT( 16 == address_v6::bytes_type::size() );
 
-    int header_byte_index = 8;
+    size_t header_byte_index = 8;
     BOOST_FOREACH( unsigned char &byte, address )
     {
         byte = Payload[ header_byte_index ];
 address_v6 Ipv6Header::get_destination_address() const
 {
     address_v6::bytes_type address; // 16 bytes
-    BOOST_ASSERT( 16 == address.size() );
+    BOOST_ASSERT( 16 == address_v6::bytes_type::size() );
 
-    int header_byte_index = 24;
+    size_t header_byte_index = 24;
     BOOST_FOREACH( unsigned char &byte, address )
     {
         byte = Payload[ header_byte_index ];
 {
     // read the first 40 bytes (mandatory for IPv6 header) from the input stream
     // and stores in the buffer object
-    header.Payload.read( is );
+    (void) header.Payload.read( is );
 
     if ( header.get_version() != 6 )
     {