diff -Naur systemd-210/src/libsystemd/sd-rtnl/rtnl-message.c systemd-210.mod/src/libsystemd/sd-rtnl/rtnl-message.c
--- systemd-210/src/libsystemd/sd-rtnl/rtnl-message.c	2014-11-19 13:10:23.998310815 +0100
+++ systemd-210.mod/src/libsystemd/sd-rtnl/rtnl-message.c	2014-12-08 12:03:18.059734333 +0100
@@ -722,6 +722,7 @@
 
 int sd_rtnl_message_open_container(sd_rtnl_message *m, unsigned short type) {
         uint16_t rtm_type;
+        int r;
 
         assert_return(m, -EINVAL);
         assert_return(!m->sealed, -EPERM);
@@ -729,15 +730,21 @@
         sd_rtnl_message_get_type(m, &rtm_type);
 
         if (rtnl_message_type_is_link(rtm_type)) {
-
                 if ((type == IFLA_LINKINFO && m->n_containers == 0) ||
                     (type == IFLA_INFO_DATA && m->n_containers == 1 &&
-                     GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO))
-                        return add_rtattr(m, type, NULL, 0);
-                else if (type == VETH_INFO_PEER && m->n_containers == 2 &&
+                     GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO)) {
+                        r = add_rtattr(m, type, NULL, 0);
+                        if ( r > 0)
+                                m->container_offsets[m->n_containers ++] = r;
+                        return r;
+                } else if (type == VETH_INFO_PEER && m->n_containers == 2 &&
                          GET_CONTAINER(m, 1)->rta_type == IFLA_INFO_DATA &&
-                         GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO)
-                        return add_rtattr(m, type, NULL, sizeof(struct ifinfomsg));
+                         GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO) {
+                        r = add_rtattr(m, type, NULL, sizeof(struct ifinfomsg));
+                        if ( r > 0)
+                                m->container_offsets[m->n_containers ++] = r;
+                        return r;
+                }
         }
 
         return -ENOTSUP;
