diff --git a/contact_storage.install b/contact_storage.install
index 361f5d3..2bf65d7 100644
--- a/contact_storage.install
+++ b/contact_storage.install
@@ -32,6 +32,17 @@ function contact_storage_install() {
   _contact_storage_ensure_fields();
 }
 
+/**
+ * Implements hook_uninstall().
+ */
+function contact_storage_uninstall() {
+  $current_contact_message = \Drupal::entityTypeManager()->getDefinition('contact_message');
+  $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager();
+  $original_contact_message = $entity_definition_update_manager->getEntityType('contact_message');
+  $entity_definition_update_manager->uninstallEntityType($current_contact_message);
+  $entity_definition_update_manager->installEntityType($original_contact_message);
+}
+
 /**
  * Make sure the fields are added.
  */
diff --git a/tests/src/Functional/ContactStorageTest.php b/tests/src/Functional/ContactStorageTest.php
index f4cc335..074252c 100644
--- a/tests/src/Functional/ContactStorageTest.php
+++ b/tests/src/Functional/ContactStorageTest.php
@@ -315,6 +315,9 @@ class ContactStorageTest extends ContactStorageTestBase {
     $this->assertText('Disabled contact form test_disable_label_2.');
     $this->drupalGet('contact/test_disable_id_2');
     $this->assertText('custom disabled message');
+    // Tests subsequent uninstall and install.
+    \Drupal::service('module_installer')->uninstall(['contact_storage']);
+    \Drupal::service('module_installer')->istall(['contact_storage']);
   }
 
   /**
