Index: /i2c-tools/trunk/eeprom/decode-dimms.pl
===================================================================
--- /i2c-tools/trunk/eeprom/decode-dimms.pl	(revision 5017)
+++ /i2c-tools/trunk/eeprom/decode-dimms.pl	(revision 5087)
@@ -1112,4 +1112,12 @@
 	if (($use_sysfs && /^\d+-\d+$/)
 	 || (!$use_sysfs && /^eeprom-/)) {
+		my @bytes = readspd64(0, $dimm_list[$i]);
+		my $dimm_checksum = 0;
+		$dimm_checksum += $bytes[$_] foreach (0 .. 62);
+		$dimm_checksum &= 0xff;
+
+		next unless $bytes[63] == $dimm_checksum || $opt_igncheck;
+		$dimm_count++;
+
 		print "<b><u>" if $opt_html;
 		printl2 "\n\nDecoding EEPROM", ($use_sysfs ?
@@ -1127,9 +1135,4 @@
 		prints "SPD EEPROM Information";
 
-		my @bytes = readspd64(0, $dimm_list[$i]);
-		my $dimm_checksum = 0;
-		$dimm_checksum += $bytes[$_] foreach (0 .. 62);
-		$dimm_checksum &= 0xff;
-
 		my $l = "EEPROM Checksum of bytes 0-62";
 		printl $l, ($bytes[63] == $dimm_checksum ?
@@ -1138,10 +1141,4 @@
 				$bytes[63], $dimm_checksum));
 
-		unless ($bytes[63] == $dimm_checksum or $opt_igncheck) {
-			print "</table>\n" if $opt_html;
-			next;
-		}
-		
-		$dimm_count++;
 		# Simple heuristic to detect Rambus
 		my $is_rambus = $bytes[0] < 4;
Index: /i2c-tools/trunk/CHANGES
===================================================================
--- /i2c-tools/trunk/CHANGES	(revision 5073)
+++ /i2c-tools/trunk/CHANGES	(revision 5087)
@@ -5,4 +5,5 @@
   decode-dimms: Fix DDR2 SDRAM module speed decoding
                 Update manufacturer IDs.
+                Don't print anything by default if checksum fails
   decode-vaio: Private data might not be readable by non-root users
                Print the asset tag
