Fix bug where the second buffer in an array of two buffers may be
ignored if the first buffer is empty.
diff --git a/asio/include/asio/detail/buffer_sequence_adapter.hpp b/asio/include/asio/detail/buffer_sequence_adapter.hpp
index f648d85..015e11f 100644
--- a/asio/include/asio/detail/buffer_sequence_adapter.hpp
+++ b/asio/include/asio/detail/buffer_sequence_adapter.hpp
@@ -290,7 +290,8 @@
 
   static Buffer first(const boost::array<Elem, 2>& buffer_sequence)
   {
-    return Buffer(buffer_sequence[0]);
+    return Buffer(asio::buffer_size(buffer_sequence[0]) != 0
+        ? buffer_sequence[0] : buffer_sequence[1]);
   }
 
 private:
@@ -343,7 +344,8 @@
 
   static Buffer first(const std::array<Elem, 2>& buffer_sequence)
   {
-    return Buffer(buffer_sequence[0]);
+    return Buffer(asio::buffer_size(buffer_sequence[0]) != 0
+        ? buffer_sequence[0] : buffer_sequence[1]);
   }
 
 private: