Index: src/wp-includes/class.wp-dependencies.php
===================================================================
--- src/wp-includes/class.wp-dependencies.php	(revision 36427)
+++ src/wp-includes/class.wp-dependencies.php	(working copy)
@@ -86,45 +86,30 @@ class WP_Dependencies {
 	 *
 	 * @param mixed $handles Optional. Items to be processed: Process queue (false), process item (string), process items (array of strings).
 	 * @param mixed $group   Group level: level (int), no groups (false).
 	 * @return array Handles of items that have been processed.
 	 */
 	public function do_items( $handles = false, $group = false ) {
 		/*
 		 * If nothing is passed, print the queue. If a string is passed,
 		 * print that item. If an array is passed, print those items.
 		 */
 		$handles = false === $handles ? $this->queue : (array) $handles;
 		$this->all_deps( $handles );
 
 		foreach ( $this->to_do as $key => $handle ) {
 			if ( !in_array($handle, $this->done, true) && isset($this->registered[$handle]) ) {
-
-				/*
-				 * A single item may alias a set of items, by having dependencies,
-				 * but no source. Queuing the item queues the dependencies.
-				 *
-				 * Example: The extending class WP_Scripts is used to register 'scriptaculous' as a set of registered handles:
-				 *   <code>add( 'scriptaculous', false, array( 'scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls' ) );</code>
-				 *
-				 * The src property is false.
-				 */
-				if ( ! $this->registered[$handle]->src ) {
-					$this->done[] = $handle;
-					continue;
-				}
-
 				/*
 				 * Attempt to process the item. If successful,
 				 * add the handle to the done array.
 				 *
 				 * Unset the item from the to_do array.
 				 */
 				if ( $this->do_item( $handle, $group ) )
 					$this->done[] = $handle;
 
 				unset( $this->to_do[$key] );
 			}
 		}
 
 		return $this->done;
 	}
Index: src/wp-includes/class.wp-styles.php
===================================================================
--- src/wp-includes/class.wp-styles.php	(revision 36427)
+++ src/wp-includes/class.wp-styles.php	(working copy)
@@ -60,35 +60,43 @@ class WP_Styles extends WP_Dependencies 
 			if ( $this->in_default_dir($obj->src) && !isset($obj->extra['conditional']) && !isset($obj->extra['alt']) ) {
 				$this->concat .= "$handle,";
 				$this->concat_version .= "$handle$ver";
 
 				$this->print_code .= $this->print_inline_style( $handle, false );
 
 				return true;
 			}
 		}
 
 		if ( isset($obj->args) )
 			$media = esc_attr( $obj->args );
 		else
 			$media = 'all';
 
-		$href = $this->_css_href( $obj->src, $ver, $handle );
-		if ( empty( $href ) ) {
-			// Turns out there is nothing to print.
+		if ( ! $obj->src ) {
+			if ( $inline_style = $this->print_inline_style( $handle, false ) ) {
+				$inline_style = sprintf( "<style id='%s-inline-css' type='text/css'>\n%s\n</style>\n", esc_attr( $handle ), $inline_style );
+				if ( $this->do_concat ) {
+					$this->print_html .= $inline_style;
+				} else {
+					echo $inline_style;
+				}
+			}
 			return true;
 		}
+// Patch note: $href should never have been empty, perhaps it meant `$osb->src`, it's always escaped as a URL nowdays.
+		$href = $this->_css_href( $obj->src, $ver, $handle );
 		$rel = isset($obj->extra['alt']) && $obj->extra['alt'] ? 'alternate stylesheet' : 'stylesheet';
 		$title = isset($obj->extra['title']) ? "title='" . esc_attr( $obj->extra['title'] ) . "'" : '';
 
 		/**
 		 * Filter the HTML link tag of an enqueued style.
 		 *
 		 * @since 2.6.0
 		 * @since 4.3.0 Introduced the `$href` parameter.
 		 *
 		 * @param string $html   The link tag for the enqueued style.
 		 * @param string $handle The style's registered handle.
 		 * @param string $href   The stylesheet's source URL.
 		 */
 		$tag = apply_filters( 'style_loader_tag', "<link rel='$rel' id='$handle-css' $title href='$href' type='text/css' media='$media' />\n", $handle, $href );
 		if ( 'rtl' === $this->text_direction && isset($obj->extra['rtl']) && $obj->extra['rtl'] ) {
