diff --git a/mailsystem.module b/mailsystem.module
index fddfc81..2168309 100644
--- a/mailsystem.module
+++ b/mailsystem.module
@@ -420,3 +420,21 @@ function mailsystem_get_mail_theme() {
   }
   return $theme;
 }
+
+/**
+ * Implements hook_system_info_alter().
+ *
+ * Prevent the module from being disabled while the mail_system variable is
+ * still using the MailsystemDelegateMailSystem class.
+ */
+function mailsystem_system_info_alter(&$info, $file, $type) {
+  if ($type == 'module' && $file->name == 'mailsystem') {
+    $mail_system = mailsystem_get();
+    foreach ($mail_system as $key => $class) {
+      if ($class == 'MailsystemDelegateMailSystem') {
+        $info['required'] = TRUE;
+        $info['explanation'] = t('<em>Mail System</em> cannot be disabled until each configuration pair on its <a href="@url">configure page</a> has a delivery method that matches its formatting method.', array('@url' => url('admin/config/system/mailsystem')));
+      }
+    }
+  }
+}
