diff --git a/core/modules/system/config/system.file.yml b/core/modules/system/config/system.file.yml
index 16fe7bfc276a448de4caabf6931547e280f5d194..b5be48c9447bc467c88c9c53ef521c2f09089fe0 100644
--- a/core/modules/system/config/system.file.yml
+++ b/core/modules/system/config/system.file.yml
@@ -5,5 +5,5 @@ chmod:
   file: '0664'
 default_scheme: 'public'
 path:
-  private: '0'
+  private: ''
   temporary: ''
diff --git a/core/modules/system/lib/Drupal/system/Tests/File/ConfigTest.php b/core/modules/system/lib/Drupal/system/Tests/File/ConfigTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..73143659d625c6633f106a7dfd2ce993955f88db
--- /dev/null
+++ b/core/modules/system/lib/Drupal/system/Tests/File/ConfigTest.php
@@ -0,0 +1,57 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\system\Tests\File\ConfigTest.
+ */
+
+namespace Drupal\system\Tests\File;
+
+/**
+ * File system configuration related tests.
+ */
+class ConfigTest extends FileTestBase {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'File system configuration test',
+      'description' => 'Tests file system configuration operations',
+      'group' => 'File API',
+    );
+  }
+
+  function setUp(){
+    parent::setUp();
+    $this->web_user = $this->drupalCreateUser(array('administer site configuration'));
+    $this->drupalLogin($this->web_user);
+  }
+
+  /**
+   * Tests file configuration page.
+   */
+  function testFileConfigurationPage() {
+    $this->drupalGet('admin/config/media/file-system');
+
+    // Set the file paths to non-default values.
+    // The respective directories are created automatically
+    // upon form submission.
+    $file_path = $this->public_files_directory;
+    $fields = array(
+      'file_public_path' => $file_path . '/file_config_page_test/public',
+      'file_private_path' => $file_path . '/file_config_page_test/private',
+      'file_temporary_path' => $file_path . '/file_config_page_test/temporary',
+      'file_default_scheme' => 'private',
+    );
+
+    // Check that all fields are present.
+    foreach ($fields as $field => $path) {
+      $this->assertFieldByName($field);
+    }
+
+    $this->drupalPost(NULL, $fields, t('Save configuration'));
+    $this->assertText(t('The configuration options have been saved.'));
+    foreach ($fields as $field => $value) {
+      $this->assertFieldByName($field, $value);
+    }
+  }
+}
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index 6583d5743d3b950018a240cc398176b213da96f0..b483e7e2adaa3df1a69311a386170fa5026685b8 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -1749,7 +1749,7 @@ function system_clear_page_cache_submit($form, &$form_state) {
  * @ingroup forms
  * @see system_settings_form_sumbit()
  */
-function system_file_system_settings() {
+function system_file_system_settings($form, $form_state) {
   $config = config('system.file');
   $form['file_public_path'] = array(
     '#type' => 'textfield',