diff --git a/ChangeLog b/ChangeLog
index d9c31678..c9628105 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2013-05-17  Paul Smith  <psmith@gnu.org>
 
+	* hash.c (CALLOC): Use xcalloc() to handle out of memory errors.
+
 	* makeint.h: Prototype new unload_file() function.
 	* load.c (unload_file): Create a function to unload a file.
 	(struct load_list): Type to remember loaded objects.
diff --git a/hash.c b/hash.c
index d1c2faca..ca2d02d6 100644
--- a/hash.c
+++ b/hash.c
@@ -17,7 +17,7 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "makeint.h"
 #include "hash.h"
 
-#define	CALLOC(t, n) ((t *) calloc (sizeof (t), (n)))
+#define	CALLOC(t, n) ((t *) xcalloc (sizeof (t) * (n)))
 #define MALLOC(t, n) ((t *) xmalloc (sizeof (t) * (n)))
 #define REALLOC(o, t, n) ((t *) xrealloc ((o), sizeof (t) * (n)))
 #define CLONE(o, t, n) ((t *) memcpy (MALLOC (t, (n)), (o), sizeof (t) * (n)))