diff --git a/media_gallery.module b/media_gallery.module
index 70f3932..18da617 100644
--- a/media_gallery.module
+++ b/media_gallery.module
@@ -506,14 +506,29 @@ function media_gallery_update($node) {
   // If the media gallery node is being saved and is configured to not provide
   // a block, remove all blocks associated with it from the database.
   if (empty($node->media_gallery_expose_block[LANGUAGE_NONE][0]['value'])) {
-    db_delete('block')
-      ->condition('module', 'media_gallery')
-      ->condition('delta', $node->nid)
-      ->execute();
+    _media_gallery_delete_block($node);
   }
 }
 
 /**
+ * Implements hook_delete().
+ */
+function media_gallery_delete($node) {
+  _media_gallery_delete_block($node);
+}
+
+/**
+ * Delete all blocks associated with the given media_gallery node.
+ */
+function _media_gallery_delete_block($node) {
+  // Remove all blocks associated with the media gallery node from the database.
+  db_delete('block')
+    ->condition('module', 'media_gallery')
+    ->condition('delta', $node->nid)
+    ->execute();
+}
+
+/**
  * Implements hook_block_info().
  */
 function media_gallery_block_info() {
