diff --git a/uc_product/tests/uc_product.test b/uc_product/tests/uc_product.test
index 93d1a1b..1165241 100644
--- a/uc_product/tests/uc_product.test
+++ b/uc_product/tests/uc_product.test
@@ -19,7 +19,7 @@ class UbercartProductTestCase extends UbercartTestHelper {
    * Overrides DrupalWebTestCase::setUp().
    */
   public function setUp() {
-    parent::setUp();
+    parent::setUp(array(), array('administer content types'));
     $this->drupalLogin($this->adminUser);
   }
 
@@ -122,6 +122,15 @@ class UbercartProductTestCase extends UbercartTestHelper {
       t('The new content type has been created in the database.')
     );
 
+    // Change the machine name of an existing class.
+    $new_type = strtolower($this->randomName(12));
+    $edit = array(
+      'type' => $new_type,
+    );
+    $this->drupalPost('admin/structure/types/manage/' . $type, $edit, 'Save content type');
+    $this->assertText('Machine name: ' . $new_type, 'Updated machine name found.');
+    $this->assertNoText('Machine name: ' . $type, 'Old machine name not found.');
+
     // Make an existing node type a product class.
     $type = $this->drupalCreateContentType();
     $edit = array(
diff --git a/uc_product/uc_product.module b/uc_product/uc_product.module
index 75f6704..b85d126 100644
--- a/uc_product/uc_product.module
+++ b/uc_product/uc_product.module
@@ -314,6 +314,9 @@ function uc_product_node_type_update($info) {
     ))
     ->condition('pcid', $existing_type)
     ->execute();
+
+  // Reset static variable data and load new info.
+  uc_product_node_info(TRUE);
 }
 
 /**
