diff --git a/features.module b/features.module
index 86e9b5d..dbe6dd4 100644
--- a/features.module
+++ b/features.module
@@ -1248,6 +1248,16 @@ function _features_set_export_language() {
     // accesses a non existing key and requests to reset it. In such cases the
     // whole caching data array is returned.
     $static = drupal_static(uniqid('', TRUE), NULL, TRUE);
+
+    // $static contains variables by reference. The call to drupal_static_reset
+    // below will reset the values in $static as well. So counter this by first
+    // making a copy. Foreach makes copies by design, which will ensure this.
+    $static_copy = array();
+    foreach ($static as $key => $value) {
+      $static_copy[$key] = $value;
+    }
+    $static = $static_copy;
+
     drupal_static_reset();
     // Restore some of the language independent, runtime state information to
     // keep everything working and avoid unnecessary double processing.
