--- /dev/null
+--- a/ether.h
++++ b/ether.h
+@@ -12,7 +12,7 @@ struct ether_header {
+ u_int8_t ether_dhost[ETHER_ADDR_LEN];
+ u_int8_t ether_shost[ETHER_ADDR_LEN];
+ u_int16_t ether_type;
+-};
++} __attribute__((packed));
+
+ struct vlan_8021q_header {
+ u_int16_t priority_cfi_vid;
--- /dev/null
+--- a/ui.c
++++ b/ui.c
+@@ -446,6 +446,7 @@ void screen_hash_clear() {
+ hash_node_type* n = NULL;
+ while(hash_next_item(screen_hash, &n) == HASH_STATUS_OK) {
+ host_pair_line* hpl = (host_pair_line*)n->rec;
++ hpl->total_recv = hpl->total_sent = 0;
+ memset(hpl->recv, 0, sizeof(hpl->recv));
+ memset(hpl->sent, 0, sizeof(hpl->sent));
+ }
--- /dev/null
+--- a/cfgfile.c
++++ b/cfgfile.c
+@@ -45,9 +45,9 @@ stringmap config;
+ extern options_t options ;
+
+ int is_cfgdirective_valid(const char *s) {
+- char **t;
+- for (t = config_directives; *t != NULL; ++t)
+- if (strcmp(s, *t) == 0) return 1;
++ int t;
++ for (t = 0; config_directives[t] != NULL; t++)
++ if (strcmp(s, config_directives[t]) == 0) return 1;
+ return 0;
+ }
+
--- /dev/null
+--- a/options.c
++++ b/options.c
+@@ -302,7 +302,7 @@ void options_read_args(int argc, char **
+ break;
+
+ case 'b':
+- config_set_string("show-bars", "true");
++ config_set_string("show-bars", "false");
+ break;
+
+ case 'B':
--- /dev/null
+--- a/ui.c
++++ b/ui.c
+@@ -263,7 +263,7 @@ static void draw_bar_scale(int* y) {
+ char s[40], *p;
+ int x;
+ /* This 1024 vs 1000 stuff is just plain evil */
+- readable_size(i, s, sizeof s, options.log_scale ? 1000 : 1024, 0);
++ readable_size(i, s, sizeof s, options.log_scale ? 1000 : 1024, options.bandwidth_in_bytes);
+ p = s + strspn(s, " ");
+ x = get_bar_length(i * 8);
+ mvaddch(*y + 1, x, ACS_BTEE);