diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 979d845367c..3b4677dc617 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,7 @@
 2007-07-27  Michael Snyder  <msnyder@access-company.com>
 
+	* aoutx.h (slurp_symbol_table): Return if count == 0.
+
 	* coffgen.c (_bfd_coff_read_internal_relocs): Return if count is zero.
 
 	* elf32-i386.c (elf_i386_check_relocs): Check for null pointer.
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index e07d7bef39f..af7d45be3a7 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -1739,9 +1739,12 @@ NAME (aout, slurp_symbol_table) (bfd *abfd)
     return FALSE;
 
   cached_size = obj_aout_external_sym_count (abfd);
+  if (cached_size == 0)
+    return TRUE;		/* Nothing to do.  */
+
   cached_size *= sizeof (aout_symbol_type);
   cached = bfd_zmalloc (cached_size);
-  if (cached == NULL && cached_size != 0)
+  if (cached == NULL)
     return FALSE;
 
   /* Convert from external symbol information to internal.  */