diff --git a/strongarm.drush.inc b/strongarm.drush.inc
index 4154303..be58f97 100644
--- a/strongarm.drush.inc
+++ b/strongarm.drush.inc
@@ -31,7 +31,7 @@ function drush_strongarm_revert() {
 function _drush_strongarm_revert($force) {
   global $conf;
 
-  $vars = strongarm_vars_load(TRUE, TRUE);
+  $vars = strongarm_default_vars_load(TRUE);
   foreach ($vars as $name => $var) {
     if ($force || isset($var->in_code_only)) {
       if (!isset($conf[$name]) || $var->value != $conf[$name]) {
diff --git a/strongarm.module b/strongarm.module
index 8263141..247490b 100644
--- a/strongarm.module
+++ b/strongarm.module
@@ -103,6 +103,35 @@ function strongarm_vars_load($sorted = TRUE, $reset = FALSE) {
   return $vars;
 }
 
+
+/**
+ * Load all variables (DB and Strongarmed).
+ */
+function strongarm_default_vars_load($reset = FALSE) {
+  ctools_include('export');
+  static $vars;
+
+  // Ensure that the schema cache is not stale when trying to load.
+  $schema = drupal_get_schema('variable');
+  if (!isset($schema['export']) || $reset) {
+    ctools_export_load_object_reset('variable');
+    drupal_get_schema('variable', TRUE);
+  }
+
+  // Load vars.
+  if (!isset($vars) || $reset) {
+    $schema = ctools_export_get_schema('variable');
+    $vars = ctools_export_load_object('variable');
+    // Vars contains the overriden value, where we want the default.
+    $default_vars = _ctools_export_get_defaults('variable', $schema['export']);
+    foreach ($default_vars as $name => $object) {
+      $default_vars[$name]->in_code_only = !empty($vars[$name]);
+    }
+  }
+  return $default_vars;
+}
+
+
 /**
  * Implementation of hook_features_revert().
  */
