Index: src/wp-includes/class.wp-scripts.php
===================================================================
--- src/wp-includes/class.wp-scripts.php	(revision 37161)
+++ src/wp-includes/class.wp-scripts.php	(working copy)
@@ -93,15 +93,6 @@
 	public $print_html = '';
 
 	/**
-	 * HTML to print before the script handle.
-	 *
-	 * @since 4.5.0
-	 * @access public
-	 * @var string
-	 */
-	public $print_html_before = '';
-
-	/**
 	 * Holds inline code if concatenation is enabled.
 	 *
 	 * @since 2.8.0
@@ -304,11 +295,7 @@
 			 */
 			$srce = apply_filters( 'script_loader_src', $src, $handle );
 
-			if ( $before_handle && ! $conditional ) {
-				$this->print_html_before .= $before_handle;
-			}
-
-			if ( $this->in_default_dir( $srce ) && ! $conditional && ! $after_handle ) {
+			if ( $this->in_default_dir( $srce ) && ! $conditional && ! $before_handle && ! $after_handle ) {
 				$this->print_code .= $this->print_extra_script( $handle, false );
 				$this->concat .= "$handle,";
 				$this->concat_version .= "$handle$ver";
@@ -363,11 +350,7 @@
 		$tag = apply_filters( 'script_loader_tag', $tag, $handle, $src );
 
 		if ( $this->do_concat ) {
-			if ( $after_handle ) {
-				$this->print_html_before .= $tag;
-			} else {
-				$this->print_html .= $tag;
-			}
+			$this->print_html .= $tag;
 		} else {
 			echo $tag;
 		}
@@ -592,7 +575,6 @@
 		$this->concat = '';
 		$this->concat_version = '';
 		$this->print_html = '';
-		$this->print_html_before = '';
 		$this->ext_version = '';
 		$this->ext_handles = '';
 	}
Index: src/wp-includes/script-loader.php
===================================================================
--- src/wp-includes/script-loader.php	(revision 37161)
+++ src/wp-includes/script-loader.php	(working copy)
@@ -998,10 +998,6 @@
 			echo "</script>\n";
 		}
 
-		if ( ! empty( $wp_scripts->print_html_before ) ) {
-			echo $wp_scripts->print_html_before;
-		}
-
 		$concat = str_split( $concat, 128 );
 		$concat = 'load%5B%5D=' . implode( '&load%5B%5D=', $concat );
 
Index: tests/phpunit/tests/dependencies/scripts.php
===================================================================
--- tests/phpunit/tests/dependencies/scripts.php	(revision 37161)
+++ tests/phpunit/tests/dependencies/scripts.php	(working copy)
@@ -453,9 +453,11 @@
 		$print_scripts = get_echo( '_print_scripts' );
 
 		$ver = get_bloginfo( 'version' );
-		$expected  = "<script type='text/javascript'>\nconsole.log(\"before one\");\n</script>\n";
+		$expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5B%5D=three&amp;ver={$ver}'></script>\n";
+		$expected .= "<script type='text/javascript'>\nconsole.log(\"before one\");\n</script>\n";
+		$expected .= "<script type='text/javascript' src='/directory/one.js?ver={$ver}'></script>\n";
 		$expected .= "<script type='text/javascript'>\nconsole.log(\"before two\");\n</script>\n";
-		$expected .= "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5B%5D=one,two,three&amp;ver={$ver}'></script>\n";
+		$expected .= "<script type='text/javascript' src='/directory/two.js?ver={$ver}'></script>\n";
 
 		$this->assertEquals( $expected, $print_scripts );
 	}
@@ -463,6 +465,32 @@
 	/**
 	 * @ticket 14853
 	 */
+	public function test_wp_add_inline_script_before_with_concat2() {
+		global $wp_scripts;
+
+		$wp_scripts->do_concat = true;
+		$wp_scripts->default_dirs = array( '/directory/' );
+
+		wp_enqueue_script( 'one', '/directory/one.js' );
+		wp_enqueue_script( 'two', '/directory/two.js' );
+		wp_enqueue_script( 'three', '/directory/three.js' );
+
+		wp_add_inline_script( 'one', 'console.log("before one");', 'before' );
+
+		wp_print_scripts();
+		$print_scripts = get_echo( '_print_scripts' );
+
+		$ver = get_bloginfo( 'version' );
+		$expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5B%5D=two,three&amp;ver={$ver}'></script>\n";
+		$expected .= "<script type='text/javascript'>\nconsole.log(\"before one\");\n</script>\n";
+		$expected .= "<script type='text/javascript' src='/directory/one.js?ver={$ver}'></script>\n";
+
+		$this->assertEquals( $expected, $print_scripts );
+	}
+
+	/**
+	 * @ticket 14853
+	 */
 	public function test_wp_add_inline_script_after_with_concat() {
 		global $wp_scripts;
 
@@ -481,11 +509,11 @@
 		$print_scripts = get_echo( '_print_scripts' );
 
 		$ver = get_bloginfo( 'version' );
-		$expected  = "<script type='text/javascript' src='/directory/two.js?ver={$ver}'></script>\n";
+		$expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5B%5D=one,four&amp;ver={$ver}'></script>\n";
+		$expected .= "<script type='text/javascript' src='/directory/two.js?ver={$ver}'></script>\n";
 		$expected .= "<script type='text/javascript'>\nconsole.log(\"after two\");\n</script>\n";
 		$expected .= "<script type='text/javascript' src='/directory/three.js?ver={$ver}'></script>\n";
 		$expected .= "<script type='text/javascript'>\nconsole.log(\"after three\");\n</script>\n";
-		$expected .= "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5B%5D=one,four&amp;ver={$ver}'></script>\n";
 
 		$this->assertEquals( $expected, $print_scripts );
 	}
@@ -516,8 +544,141 @@
 		wp_script_add_data( 'test-example', 'conditional', 'gte IE 9' );
 
 		$this->assertEquals( $expected_localized, get_echo( 'wp_print_scripts' ) );
-		$this->assertEquals( $expected, $wp_scripts->print_html_before );
-		$this->assertEquals( '', $wp_scripts->print_html );
+		$this->assertEquals( $expected, $wp_scripts->print_html );
 	}
 
+	/**
+	 * @ticket 36392
+	 */
+	public function test_wp_add_inline_script_concat_with_core_dependency() {
+		global $wp_scripts;
+
+		wp_default_scripts( $wp_scripts );
+
+		$wp_scripts->base_url = '';
+		$wp_scripts->do_concat = true;
+
+		$ver = get_bloginfo( 'version' );
+		$expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5B%5D=jquery-core,jquery-migrate&amp;ver={$ver}'></script>\n";
+		$expected .= "<script type='text/javascript' src='http://example.com'></script>\n";
+		$expected .= "<script type='text/javascript'>\nconsole.log(\"after\");\n</script>\n";
+
+		wp_enqueue_script( 'test-example', 'http://example.com', array( 'jquery' ), null );
+		wp_add_inline_script( 'test-example', 'console.log("after");' );
+
+		wp_print_scripts();
+		$print_scripts = get_echo( '_print_scripts' );
+
+		$this->assertEquals( $expected, $print_scripts );
+	}
+
+	/**
+	 * @ticket 36392
+	 */
+	public function test_wp_add_inline_script_concat_with_conditional_and_core_dependency() {
+		global $wp_scripts;
+
+		wp_default_scripts( $wp_scripts );
+
+		$wp_scripts->base_url = '';
+		$wp_scripts->do_concat = true;
+
+		$ver = get_bloginfo( 'version' );
+		$expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5B%5D=jquery-core,jquery-migrate&amp;ver={$ver}'></script>\n";
+		$expected .= "<!--[if gte IE 9]>\n";
+		$expected .= "<script type='text/javascript' src='http://example.com'></script>\n";
+		$expected .= "<script type='text/javascript'>\nconsole.log(\"after\");\n</script>\n";
+		$expected .= "<![endif]-->\n";
+
+		wp_enqueue_script( 'test-example', 'http://example.com', array( 'jquery' ), null );
+		wp_add_inline_script( 'test-example', 'console.log("after");' );
+		wp_script_add_data( 'test-example', 'conditional', 'gte IE 9' );
+
+		wp_print_scripts();
+		$print_scripts = get_echo( '_print_scripts' );
+
+		$this->assertEquals( $expected, $print_scripts );
+	}
+
+	/**
+	 * @ticket 36392
+	 */
+	public function test_wp_add_inline_script_before_concat_with_core_dependency() {
+		global $wp_scripts;
+
+		wp_default_scripts( $wp_scripts );
+
+		$wp_scripts->base_url = '';
+		$wp_scripts->do_concat = true;
+
+		$ver = get_bloginfo( 'version' );
+		$expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5B%5D=jquery-core,jquery-migrate&amp;ver={$ver}'></script>\n";
+		$expected .= "<script type='text/javascript'>\nconsole.log(\"before\");\n</script>\n";
+		$expected .= "<script type='text/javascript' src='http://example.com'></script>\n";
+
+		wp_enqueue_script( 'test-example', 'http://example.com', array( 'jquery' ), null );
+		wp_add_inline_script( 'test-example', 'console.log("before");', 'before' );
+
+		wp_print_scripts();
+		$print_scripts = get_echo( '_print_scripts' );
+
+		$this->assertEquals( $expected, $print_scripts );
+	}
+
+	/**
+	 * @ticket 36392
+	 */
+	public function test_wp_add_inline_script_before_after_concat_with_core_dependency() {
+		global $wp_scripts;
+
+		wp_default_scripts( $wp_scripts );
+
+		$wp_scripts->base_url = '';
+		$wp_scripts->do_concat = true;
+
+		$ver = get_bloginfo( 'version' );
+		$expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5B%5D=jquery-core,jquery-migrate,wp-a11y&amp;ver={$ver}'></script>\n";
+		$expected .= "<script type='text/javascript'>\nconsole.log(\"before\");\n</script>\n";
+		$expected .= "<script type='text/javascript' src='http://example.com'></script>\n";
+		$expected .= "<script type='text/javascript' src='http://example2.com'></script>\n";
+		$expected .= "<script type='text/javascript'>\nconsole.log(\"after\");\n</script>\n";
+
+		wp_enqueue_script( 'test-example', 'http://example.com', array( 'jquery' ), null );
+		wp_add_inline_script( 'test-example', 'console.log("before");', 'before' );
+		wp_enqueue_script( 'test-example2', 'http://example2.com', array( 'wp-a11y' ), null );
+		wp_add_inline_script( 'test-example2', 'console.log("after");', 'after' );
+
+		wp_print_scripts();
+		$print_scripts = get_echo( '_print_scripts' );
+
+		$this->assertEquals( $expected, $print_scripts );
+	}
+
+	/**
+	 * @ticket 36392
+	 */
+	public function test_wp_add_inline_script_customize_dependency() {
+		global $wp_scripts;
+
+		wp_default_scripts( $wp_scripts );
+
+		$wp_scripts->base_url = '';
+		$wp_scripts->do_concat = true;
+
+		$expected_tail  = "<![endif]-->\n";
+		$expected_tail .= "<script type='text/javascript' src='/customize-dependency.js'></script>\n";
+		$expected_tail .= "<script type='text/javascript'>\n";
+		$expected_tail .= "tryCustomizeDependency()\n";
+		$expected_tail .= "</script>\n";
+
+		$handle = 'customize-dependency';
+		wp_enqueue_script( $handle, '/customize-dependency.js', array( 'customize-controls' ), null );
+		wp_add_inline_script( $handle, 'tryCustomizeDependency()' );
+
+		wp_print_scripts();
+		$print_scripts = get_echo( '_print_scripts' );
+
+		$tail = substr( $print_scripts, strrpos( $print_scripts, "<![endif]-->" ) );
+		$this->assertEquals( $expected_tail, $tail );
+	}
 }
