diff --git a/sm5/CHANGELOG b/sm5/CHANGELOG
index 5e1e2b426846e6a91c5e86c12e4badb9106c982b..7bab50ab43824ee051a5789eed2e770c7ba0fa24 100644
--- a/sm5/CHANGELOG
+++ b/sm5/CHANGELOG
@@ -1,6 +1,6 @@
 CHANGELOG for smartmontools
 
-$Id: CHANGELOG,v 1.467 2004/09/05 21:04:56 ballen4705 Exp $
+$Id: CHANGELOG,v 1.468 2004/09/10 04:13:41 ballen4705 Exp $
 
 The most recent version of this file is:
 http://cvs.sourceforge.net/viewcvs.py/smartmontools/sm5/CHANGELOG?sortby=date&view=markup
@@ -33,6 +33,10 @@ NOTES FOR FUTURE RELEASES: see TODO file.
 
 smartmontools 5.33 Experimental Release
 
+  [BA] smartctl: ATA disks, if SMART ATTRIBUTE THRESHOLDS page has ID
+       errors with some Attributes having NULL IDs, print Attribute
+       info anyway (but issuing a warning to the user).
+
   [DG] [SCSI] Decode Last n error events log page; decode track following
        and positioning errors [Hitachi]
 
@@ -1599,11 +1603,12 @@ smartmontools-5.0.24
 
     Note: it has now been confirmed that the code modifications between
     5.0.23 and 5.0.24 have eliminated the GCC 3.2 problems.  Note that
-    there is a GCC bug howerver, see #848 at
+    there is a GCC bug howerver, see #8404 at
     http://gcc.gnu.org/cgi-bin/gnatsweb.pl?database=gcc&cmd=query
+    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8404
 
       Added new Directive for Configuration file:
--C <N> This sets the time in between disk checks to be <N>
+      -C <N> This sets the time in between disk checks to be <N>
       seconds apart.  Note that  although  you  can  give
        this Directive multiple times on different lines of
        the configuration file, only the final  value  that
diff --git a/sm5/ataprint.c b/sm5/ataprint.c
index ba736e26e3f4915e28f712440782e6f95dc427cc..21e87e7c5d3f01ed52b26d082c47c5714a514659 100644
--- a/sm5/ataprint.c
+++ b/sm5/ataprint.c
@@ -35,7 +35,7 @@
 #include "knowndrives.h"
 #include "config.h"
 
-const char *ataprint_c_cvsid="$Id: ataprint.c,v 1.155 2004/07/13 14:48:06 ballen4705 Exp $"
+const char *ataprint_c_cvsid="$Id: ataprint.c,v 1.156 2004/09/10 04:13:41 ballen4705 Exp $"
 ATACMDNAMES_H_CVSID ATACMDS_H_CVSID ATAPRINT_H_CVSID CONFIG_H_CVSID EXTERN_H_CVSID INT64_H_CVSID KNOWNDRIVES_H_CVSID SMARTCTL_H_CVSID UTILITY_H_CVSID;
 
 // for passing global control variables
@@ -797,8 +797,9 @@ void PrintSmartAttribWithThres (struct ata_smart_values *data,
     struct ata_smart_attribute *disk=data->vendor_attributes+i;
     struct ata_smart_threshold_entry *thre=thresholds->thres_entries+i;
     
-    // consider only valid attributes
-    if (disk->id && thre->id){
+    // consider only valid attributes (allowing some screw-ups in the
+    // thresholds page data to slip by)
+    if (disk->id){
       char *type, *update;
       int failednow,failedever;
       char attributename[64];
diff --git a/sm5/ataprint.cpp b/sm5/ataprint.cpp
index 13167d966dabc4fdf98da9c65c2cc1a9988211ae..b3345b228ad2b75ffc8b2a2f73709b2aec052d20 100644
--- a/sm5/ataprint.cpp
+++ b/sm5/ataprint.cpp
@@ -35,7 +35,7 @@
 #include "knowndrives.h"
 #include "config.h"
 
-const char *ataprint_c_cvsid="$Id: ataprint.cpp,v 1.155 2004/07/13 14:48:06 ballen4705 Exp $"
+const char *ataprint_c_cvsid="$Id: ataprint.cpp,v 1.156 2004/09/10 04:13:41 ballen4705 Exp $"
 ATACMDNAMES_H_CVSID ATACMDS_H_CVSID ATAPRINT_H_CVSID CONFIG_H_CVSID EXTERN_H_CVSID INT64_H_CVSID KNOWNDRIVES_H_CVSID SMARTCTL_H_CVSID UTILITY_H_CVSID;
 
 // for passing global control variables
@@ -797,8 +797,9 @@ void PrintSmartAttribWithThres (struct ata_smart_values *data,
     struct ata_smart_attribute *disk=data->vendor_attributes+i;
     struct ata_smart_threshold_entry *thre=thresholds->thres_entries+i;
     
-    // consider only valid attributes
-    if (disk->id && thre->id){
+    // consider only valid attributes (allowing some screw-ups in the
+    // thresholds page data to slip by)
+    if (disk->id){
       char *type, *update;
       int failednow,failedever;
       char attributename[64];
diff --git a/sm5/configure.in b/sm5/configure.in
index 52e05e6366a89f47bc78d7043ff6eb05fd89b279..4c1737ba59217a72919b4709ff32611e1d1b2f54 100644
--- a/sm5/configure.in
+++ b/sm5/configure.in
@@ -1,5 +1,5 @@
 #
-# $Id: configure.in,v 1.101 2004/09/07 22:10:44 shattered Exp $
+# $Id: configure.in,v 1.102 2004/09/10 04:13:41 ballen4705 Exp $
 #
 dnl Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.50)
@@ -7,9 +7,9 @@ AC_INIT(smartmontools, 5.33, smartmontools-support@lists.sourceforge.net)
 AC_CONFIG_SRCDIR(smartctl.c)
 
 smartmontools_configure_date=`date -u +"%Y/%m/%d %T %Z"`
-smartmontools_cvs_tag=`echo '$Id: configure.in,v 1.101 2004/09/07 22:10:44 shattered Exp $'`
-smartmontools_release_date=2004/09/06
-smartmontools_release_time="21:44:17 UTC"
+smartmontools_cvs_tag=`echo '$Id: configure.in,v 1.102 2004/09/10 04:13:41 ballen4705 Exp $'`
+smartmontools_release_date=2004/09/10
+smartmontools_release_time="04:11:35 UTC"
 
 AC_DEFINE_UNQUOTED(SMARTMONTOOLS_CONFIGURE_ARGS, "$ac_configure_args",            [smartmontools Configure Arguments])
 AC_DEFINE_UNQUOTED(SMARTMONTOOLS_CONFIGURE_DATE, "$smartmontools_configure_date", [smartmontools Configure Date])
diff --git a/sm5/smartctl.8.in b/sm5/smartctl.8.in
index 32f8b33408af3e9c100ed86d6eb95fa44cb7a9cf..d1ebd8f9f5dfee46ad7738535ee279acf61c427a 100644
--- a/sm5/smartctl.8.in
+++ b/sm5/smartctl.8.in
@@ -1,7 +1,7 @@
 .ig
  Copyright (C) 2002-4 Bruce Allen <smartmontools-support@lists.sourceforge.net>
 
- $Id: smartctl.8.in,v 1.63 2004/09/05 21:04:56 ballen4705 Exp $
+ $Id: smartctl.8.in,v 1.64 2004/09/10 04:13:41 ballen4705 Exp $
  
  This program is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published by the Free
@@ -231,12 +231,12 @@ later of the 3w\-xxxx driver, or by applying a patch to older
 versions. See \fBhttp://smartmontools.sourceforge.net/\fP for
 instructions.  Alternatively, use the character device /dev/twe0-15 interface.
 
-The selective self-test functions ('-t select,A-B') are only supported
-using the character device interface /dev/twa0-15 and /dev/twe0-15.
+The selective self\-test functions (\'\-t select,A\-B\') are only supported
+using the character device interface /dev/twa0\-15 and /dev/twe0\-15.
 The necessary WRITE LOG commands can not be passed through the SCSI
 interface.
 
-.B 3ware controllers are currently ONLY supported under Linux.
+.B 3ware controllers are currently ONLY supported under Linux and FreeBSD.
 
 .TP
 .B \-T TYPE, \-\-tolerance=TYPE
@@ -563,7 +563,7 @@ relatively free format (compared with ATA disk attributes).
 .TP
 .B \-l TYPE, \-\-log=TYPE
 Prints either the SMART Error Log, the SMART Self\-Test Log, the SMART
-Selective Self-Test Log [ATA only], or the Log Directory [ATA only].
+Selective Self\-Test Log [ATA only], or the Log Directory [ATA only].
 The valid arguments to this option are:
 
 .I error
@@ -845,7 +845,7 @@ in the \fBsmartmontools\fP database, then the presets are used.
 \fBsmartctl\fP can automatically set appropriate options for known
 drives.  For example, the Maxtor 4D080H4 uses Attribute 9 to stores
 power\-on time in minutes whereas most drives use that Attribute to
-store the power\-on time in hours.  The command\-line option \'-v
+store the power\-on time in hours.  The command\-line option \'\-v
 9,minutes\' ensures that \fBsmartctl\fP correctly interprets Attribute
 9 in this case, but that option is preset for the Maxtor 4D080H4 and
 so need not be specified by the user on the \fBsmartctl\fP command
@@ -868,7 +868,7 @@ The valid arguments to this option are:
 .I use
 \- if a drive is recognized, then use the stored presets for it.  This
 is the default. Note that presets will NOT over\-ride additional
-Attribute interpretation (\'-v N,something\') command\-line options or
+Attribute interpretation (\'\-v N,something\') command\-line options or
 explicit \'\-F\' command\-line options..
 
 .I ignore
@@ -890,8 +890,10 @@ Executes TEST immediately.  The \'\-C\' option can be used in
 conjunction with this option to run the short or long (and also for
 ATA devices, selective or conveyance) self\-tests in captive mode
 (known as "foreground mode" for SCSI devices).  Note that only one
-test can be run at a time, so this option should only be used once per
-command line.
+test type can be run at a time, so only one test type should be
+specified per command line.  Note also that if a computer is shutdown
+or power cycled during a self\-test, no harm should result.  The
+self\-test will either be aborted or will resume automatically.
 
 The valid arguments to this option are:  
 
@@ -1237,7 +1239,7 @@ these documents may be found in the References section of the
 
 .SH
 CVS ID OF THIS PAGE:
-$Id: smartctl.8.in,v 1.63 2004/09/05 21:04:56 ballen4705 Exp $
+$Id: smartctl.8.in,v 1.64 2004/09/10 04:13:41 ballen4705 Exp $
 .\" Local Variables:	         
 .\" mode: nroff         
 .\" End:
diff --git a/sm5/smartmontools.spec b/sm5/smartmontools.spec
index 96d35abcac85923243e585660e2a4128920cb78d..a5901764c6e9a8f2e2f4f354e26e45fcb01c1e97 100644
--- a/sm5/smartmontools.spec
+++ b/sm5/smartmontools.spec
@@ -35,7 +35,7 @@ Packager:       Bruce Allen <smartmontools-support@lists.sourceforge.net>
 # http://ftp1.sourceforge.net/smartmontools/smartmontools-%{version}-%{release}.tar.gz
 
 # CVS ID of this file is:
-# $Id: smartmontools.spec,v 1.161 2004/09/05 21:04:56 ballen4705 Exp $
+# $Id: smartmontools.spec,v 1.162 2004/09/10 04:13:41 ballen4705 Exp $
 
 # Copyright (C) 2002-4 Bruce Allen <smartmontools-support@lists.sourceforge.net>
 # Home page: http://smartmontools.sourceforge.net/
@@ -324,7 +324,10 @@ fi
 # [PW] Phil Williams
 
 %changelog
-* Sun Sep 5 2004 Bruce Allen  <smartmontools-support@lists.sourceforge.net>
+* Fri Sep 10 2004 Bruce Allen  <smartmontools-support@lists.sourceforge.net>
+  [BA] smartctl: ATA disks, if SMART ATTRIBUTE THRESHOLDS page has ID
+       errors with some Attributes having NULL IDs, print Attribute
+       info anyway (but issuing a warning to the user).
   [DG] [SCSI] Decode Last n error events log page; decode track following
        and positioning errors [Hitachi]
   [EM] FreeBSD: another tweak, __packed__ introduced in Version 5.0040
@@ -1435,8 +1438,8 @@ fi
   devices wil be scanned.
 - Note: it has now been confirmed that the code modifications between
   5.0.23 and 5.0.24 have eliminated the GCC 3.2 problems.  Note that
-  there is a GCC bug howerver, see #848 at
-  http://gcc.gnu.org/cgi-bin/gnatsweb.pl?database=gcc&cmd=query
+  there is a GCC bug howerver, see #8404 at
+  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8404
 - Added new Directive for Configuration file:
   -C <N> This sets the time in between disk checks to be <N>
   seconds apart.  Note that  although  you  can  give