diff --git a/plugins/views_plugin_display_system.inc b/plugins/views_plugin_display_system.inc
index 079fe48..322d470 100644
--- a/plugins/views_plugin_display_system.inc
+++ b/plugins/views_plugin_display_system.inc
@@ -177,6 +177,14 @@ class views_plugin_display_system extends views_plugin_display {
         // the final _menu_router_build(). Without this, the new access callback
         // views_access() in $items[$path] would be inherited to all children.
         $child += $defaults;
+        // Page views created are children of a system view,
+        // 'admin/content/child-view', for example, will fail as the 'file' key
+        // is inherited. The simplest possible fix in this case is just
+        // removing it if the callback is a views page.
+        // @link http://drupal.org/node/1673820
+        if (isset($child['page callback']) && ($child['page callback'] === 'views_page')) {
+          unset($child['file']);
+        }
       }
     }
     // If the original parent path already existed, copy over its remaining
diff --git a/tests/admin_views.test b/tests/admin_views.test
index db2a00b..38ee80c 100644
--- a/tests/admin_views.test
+++ b/tests/admin_views.test
@@ -145,3 +145,91 @@ class AdminViewsDefaultViewsTestCase extends AdminViewsWebTestCase {
   }
 }
 
+/**
+ * Tests system child page display functionality.
+ */
+class AdminViewsPageDisplayTestCase extends AdminViewsWebTestCase {
+  public static function getInfo() {
+    return array(
+      'name' => 'Views Page display plugin',
+      'description' => 'Tests views page functionality for children of system plugins.',
+      'group' => 'Administration views',
+    );
+  }
+
+  function setUp() {
+    parent::setUp(array('node'));
+
+    // Save the test page view.
+    $this->normalPageView()->save();
+
+    // Rebuild the menu.
+    // views_invalidate_cache only sets the rebuild variable.
+    menu_rebuild();
+  }
+
+  /**
+   * Tests creation of a view with page display and a child of "admin/content".
+   */
+  function testAddPageViewAdminContent() {
+    $this->drupalLogin($this->admin_user);
+
+    // Test the child view exists by checking for the page title.
+    $this->drupalGet('admin/content/test');
+    $this->assertText('admin_views_test_normal');
+  }
+
+  /**
+   * Returns a test page view with a path under "admin/content".
+   */
+  protected function normalPageView() {
+    $view = new view();
+    $view->name = 'admin_views_test_normal';
+    $view->description = '';
+    $view->tag = 'default';
+    $view->base_table = 'node';
+    $view->human_name = 'admin_views_test_normal';
+    $view->core = 7;
+    $view->api_version = '3.0';
+    $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+
+    /* Display: Master */
+    $handler = $view->new_display('default', 'Master', 'default');
+    $handler->display->display_options['title'] = 'admin_views_test_normal';
+    $handler->display->display_options['use_more_always'] = FALSE;
+    $handler->display->display_options['access']['type'] = 'perm';
+    $handler->display->display_options['cache']['type'] = 'none';
+    $handler->display->display_options['query']['type'] = 'views_query';
+    $handler->display->display_options['exposed_form']['type'] = 'basic';
+    $handler->display->display_options['pager']['type'] = 'full';
+    $handler->display->display_options['pager']['options']['items_per_page'] = '10';
+    $handler->display->display_options['style_plugin'] = 'default';
+    $handler->display->display_options['row_plugin'] = 'node';
+    /* Field: Content: Title */
+    $handler->display->display_options['fields']['title']['id'] = 'title';
+    $handler->display->display_options['fields']['title']['table'] = 'node';
+    $handler->display->display_options['fields']['title']['field'] = 'title';
+    $handler->display->display_options['fields']['title']['label'] = '';
+    $handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
+    $handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
+    /* Sort criterion: Content: Post date */
+    $handler->display->display_options['sorts']['created']['id'] = 'created';
+    $handler->display->display_options['sorts']['created']['table'] = 'node';
+    $handler->display->display_options['sorts']['created']['field'] = 'created';
+    $handler->display->display_options['sorts']['created']['order'] = 'DESC';
+    /* Filter criterion: Content: Published */
+    $handler->display->display_options['filters']['status']['id'] = 'status';
+    $handler->display->display_options['filters']['status']['table'] = 'node';
+    $handler->display->display_options['filters']['status']['field'] = 'status';
+    $handler->display->display_options['filters']['status']['value'] = 1;
+    $handler->display->display_options['filters']['status']['group'] = 1;
+    $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
+
+    /* Display: Page */
+    $handler = $view->new_display('page', 'Page', 'page');
+    $handler->display->display_options['defaults']['hide_admin_links'] = FALSE;
+    $handler->display->display_options['path'] = 'admin/content/test';
+
+    return $view;
+  }
+}
\ No newline at end of file
