diff --git a/core_bridge/storage_core_bridge.install b/core_bridge/storage_core_bridge.install
index 852f962..fd124ad 100644
--- a/core_bridge/storage_core_bridge.install
+++ b/core_bridge/storage_core_bridge.install
@@ -64,6 +64,17 @@ function storage_core_bridge_install() {
       }
     }
   }
+
+  // Create selector for filesystem default scheme
+  storage_core_bridge_default_selector()->create();
+}
+
+/**
+ * Create file default scheme selector.
+ */
+function storage_core_bridge_update_7001() {
+  // Create file default scheme selector.
+  storage_core_bridge_default_selector()->create();
 }
 
 /**
diff --git a/core_bridge/storage_core_bridge.module b/core_bridge/storage_core_bridge.module
index 20a1b8b..0a1e502 100755
--- a/core_bridge/storage_core_bridge.module
+++ b/core_bridge/storage_core_bridge.module
@@ -67,6 +67,13 @@ function storage_core_bridge_image_style_default_selector($isid) {
 }
 
 /**
+ * Gets the storage selector for the default file scheme.
+ */
+function storage_core_bridge_default_selector() {
+  return storage_selector('storage_core_bridge', 'file_default_scheme');
+}
+
+/**
  * Creates a storage selector for a field.
  *
  * @param string $field_name
@@ -137,6 +144,13 @@ function storage_core_bridge_stream_wrappers() {
     );
   }
 
+  $wrappers[storage_core_bridge_field_scheme('file_default_scheme')] = array(
+    'name' => t("Storage class (default file scheme)"),
+    'class' => 'DrupalStorageStreamWrapper',
+    'description' => 'Storage class - default file scheme (set at /admin/config/media/file-system)',
+    'type' => STREAM_WRAPPERS_WRITE_VISIBLE,
+  );
+
   return $wrappers;
 }
 
@@ -297,6 +311,26 @@ function storage_core_bridge_image_style_form_submit(array $form, array &$form_s
 }
 
 /**
+ * Implements hook_form_FORM_ID_alter().
+ */
+function storage_core_bridge_form_system_file_system_settings_alter(array &$form, array &$form_state) {
+  // Add the option to use Storage API.
+  $field_name = 'file_default_scheme';
+  $scheme = storage_core_bridge_field_scheme($field_name);
+  $form[$field_name]['#options'][$scheme] = t("Storage class (select below)");
+
+  // Add the class selector widget.
+  $form[$field_name . '_storage_class'] = storage_core_bridge_default_selector()->formItem();
+
+  $form['#submit'][] = 'storage_core_bridge_system_file_system_settings_submit';
+}
+
+function storage_core_bridge_system_file_system_settings_submit(array $form, array &$form_state) {
+  storage_core_bridge_default_selector()
+    ->submit($form_state['values']['file_default_scheme_storage_class']);
+}
+
+/**
  * Loads a storage from its URI.
  *
  * @param $uri
@@ -394,7 +428,12 @@ function storage_core_bridge_styled_image_create($uri) {
   }
   else {
     $field_name = storage_core_bridge_uri_field_name($uri);
-    $selector = storage_core_bridge_field_selector($field_name);
+    if ($field_name == 'file_default_scheme') {
+      $selector = storage_core_bridge_default_selector();
+    }
+    else {
+      $selector = storage_core_bridge_field_selector($field_name);
+    }
   }
 
   drupal_alter('storage_core_bridge_styled_image_options', $options, $uri, $parent);
@@ -433,7 +472,19 @@ function storage_core_bridge_storage_access(Storage $storage) {
     return;
   }
 
-  $node = node_load($file_usage['id']);
+  // Avoid node_load() to prevent 'maximum nesting levels reached' error.
+  // See https://www.drupal.org/node/1138052#comment-7718673
+  $query = db_select('node');
+  $result = $query->fields('node', array('uid', 'status', 'type'))
+    ->condition('nid', $file_usage['id'])
+    ->execute()
+    ->fetchAssoc();
+  $node = new stdClass();
+  $node->nid = $file_usage['id'];
+  $node->uid = $result['uid'];
+  $node->status = $result['status'];
+  $node->type = $result['type'];
+
   return node_access('view', $node);
 }
 
@@ -554,7 +605,12 @@ class DrupalStorageStreamWrapper implements DrupalStreamWrapperInterface {
       $field_name = storage_core_bridge_uri_field_name($this->uri);
 
       try {
-        $storage = storage_core_bridge_field_selector($field_name)->storageAdd($options);
+        if ($field_name == 'file_default_scheme') {
+          $storage = storage_core_bridge_default_selector()->storageAdd($options);
+        }
+        else {
+          $storage = storage_core_bridge_field_selector($field_name)->storageAdd($options);
+        }
 
         db_insert('storage_core_bridge')
           ->fields(array(
@@ -818,3 +874,17 @@ class DrupalStorageStreamWrapper implements DrupalStreamWrapperInterface {
   }
 
 }
+
+/**
+ * Implements hook_query_media_browser_alter().
+ */
+function storage_core_bridge_query_media_browser_alter($query) {
+  $conditions =& $query->conditions();
+  foreach ($conditions as $key => $condition) {
+    if (isset($condition['field']) && gettype($condition['field']) == 'string'
+      && substr($condition['field'], -4) == '.uri' && $condition['operator'] == 'NOT LIKE'
+      && substr($condition['value'], 0, 8) == 'storage-') {
+      unset($conditions[$key]);
+    }
+  }
+}
