diff --git a/myisam/mi_dynrec.c b/myisam/mi_dynrec.c
index ccbd2db29158c7243d6fedd9b923b0da3ab41ca8..52d9b437d6d17f07e56211d748044ce66a920fcd 100644
--- a/myisam/mi_dynrec.c
+++ b/myisam/mi_dynrec.c
@@ -80,7 +80,7 @@ int _mi_write_blob_record(MI_INFO *info, const byte *record)
 #endif
   if (!(rec_buff=(byte*) my_alloca(reclength)))
   {
-    my_errno=ENOMEM;
+    my_errno= HA_ERR_OUT_OF_MEM; /* purecov: inspected */
     return(-1);
   }
   reclength2= _mi_rec_pack(info,rec_buff+ALIGN_SIZE(MI_MAX_DYN_BLOCK_HEADER),
@@ -114,7 +114,7 @@ int _mi_update_blob_record(MI_INFO *info, my_off_t pos, const byte *record)
 #endif
   if (!(rec_buff=(byte*) my_alloca(reclength)))
   {
-    my_errno=ENOMEM;
+    my_errno= HA_ERR_OUT_OF_MEM; /* purecov: inspected */
     return(-1);
   }
   reclength=_mi_rec_pack(info,rec_buff+ALIGN_SIZE(MI_MAX_DYN_BLOCK_HEADER),
diff --git a/myisam/mi_update.c b/myisam/mi_update.c
index ef51726633737f29017f6dc1f5e53f8e599a6400..2fb7b2d28828722f26fd6957049605e88ed4eeb4 100644
--- a/myisam/mi_update.c
+++ b/myisam/mi_update.c
@@ -196,7 +196,8 @@ int mi_update(register MI_INFO *info, const byte *oldrec, byte *newrec)
   save_errno=my_errno;
   if (changed)
     key_changed|= HA_STATE_CHANGED;
-  if (my_errno == HA_ERR_FOUND_DUPP_KEY || my_errno == HA_ERR_RECORD_FILE_FULL)
+  if (my_errno == HA_ERR_FOUND_DUPP_KEY || my_errno == HA_ERR_OUT_OF_MEM ||
+      my_errno == HA_ERR_RECORD_FILE_FULL)
   {
     info->errkey= (int) i;
     flag=0;
diff --git a/myisam/mi_write.c b/myisam/mi_write.c
index a942d1cd377e25075f1a9a3e88783bad3258f7af..56d523dcb285cab2c8bd53eb8c5bc57a436eb4c5 100644
--- a/myisam/mi_write.c
+++ b/myisam/mi_write.c
@@ -168,7 +168,7 @@ int mi_write(MI_INFO *info, byte *record)
 err:
   save_errno=my_errno;
   if (my_errno == HA_ERR_FOUND_DUPP_KEY || my_errno == HA_ERR_RECORD_FILE_FULL ||
-      my_errno == HA_ERR_NULL_IN_SPATIAL)
+      my_errno == HA_ERR_NULL_IN_SPATIAL || my_errno == HA_ERR_OUT_OF_MEM)
   {
     if (info->bulk_insert)
     {