diff --git a/core/modules/overlay/overlay.module b/core/modules/overlay/overlay.module
index 1566740..98a86b2 100644
--- a/core/modules/overlay/overlay.module
+++ b/core/modules/overlay/overlay.module
@@ -151,7 +151,8 @@ function overlay_init() {
       drupal_goto('<front>', array('fragment' => 'overlay=' . $current_path));
     }
 
-    if (isset($_GET['render']) && $_GET['render'] == 'overlay') {
+    $query_render = \Drupal::request()->query->get('render');
+    if ($query_render == 'overlay') {
       // If a previous page requested that we close the overlay, close it and
       // redirect to the final destination.
       if (isset($_SESSION['overlay_close_dialog'])) {
@@ -168,7 +169,7 @@ function overlay_init() {
       overlay_set_mode('child');
 
       // Unset the render parameter to avoid it being included in URLs on the page.
-      unset($_GET['render']);
+      \Drupal::request()->query->remove('render');
     }
     // Do not enable the overlay if we already are on an admin page.
     elseif (!path_is_admin($current_path)) {
@@ -680,8 +681,8 @@ function overlay_overlay_child_initialize() {
   // at the end of the page request. This allows us to check if anything
   // actually did change, and, if so, trigger an immediate Ajax refresh
   // of the parent window.
-  $token = drupal_container()->get('request')->query->get('token');
-  if (!empty($_POST) || isset($token)) {
+  $token = \Drupal::request()->query->get('token');
+  if ((\Drupal::request()->request->count() > 0) || isset($token)) {
     foreach (overlay_supplemental_regions() as $region) {
       overlay_store_rendered_content($region, overlay_render_region($region));
     }
