diff --git a/eeprom/decode-dimms b/eeprom/decode-dimms
index 4dab039..252f010 100755
--- a/eeprom/decode-dimms
+++ b/eeprom/decode-dimms
@@ -438,10 +438,21 @@ sub real_printl($$) # print a line w/ label and values
$label = html_encode($label);
@values = map { html_encode($_) } @values;
print "
$label | ";
- if ($opt_merge && $same_values) {
+ if (!$opt_merge) {
+ print "$_ | " foreach @values;
+ } elsif ($same_values) {
print "$values[0] | ";
} else {
- print "$_ | " foreach @values;
+ # For HTML output, merge adjacent cells even if
+ # the whole line cannot be merged.
+ my $colcnt = 0;
+ while (@values) {
+ $colcnt++;
+ my $value = shift @values;
+ next if (@values && $value eq $values[0]);
+ print " 1 ? " colspan=$colcnt" : "") .">$value | ";
+ $colcnt = 0;
+ }
}
print "
\n";
} else {