diff --git a/src/wp-includes/class-walker-nav-menu.php b/src/wp-includes/class-walker-nav-menu.php
index c97188b..83dbfed 100644
--- a/src/wp-includes/class-walker-nav-menu.php
+++ b/src/wp-includes/class-walker-nav-menu.php
@@ -59,6 +59,9 @@ public function start_lvl( &$output, $depth = 0, $args = array() ) {
 		}
 		$indent = str_repeat( $t, $depth );
 
+		// Default class.
+		$classes = array( 'sub-menu' );
+
 		/**
 		 * Filters the CSS class(es) applied to a menu list element.
 		 *
@@ -68,12 +71,10 @@ public function start_lvl( &$output, $depth = 0, $args = array() ) {
 		 * @param stdClass $args    An object of `wp_nav_menu()` arguments.
 		 * @param int      $depth   Depth of menu item. Used for padding.
 		 */
+		$class_names = join( ' ', apply_filters( 'nav_menu_submenu_css_class', $classes, $args, $depth ) );
+		$class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
 
-		$classes = array( 'sub-menu' );
-		$classes = apply_filters( 'nav_menu_submenu_css_class', $classes, $args, $depth );
-		$class_names = join( ' ', $classes );
-
-		$output .= "{$n}{$indent}<ul class='" . esc_attr( $class_names ) . "'>{$n}";
+		$output .= "{$n}{$indent}<ul $class_names>{$n}";
 	}
 
 	/**
