West Ham earned a valuable point on the road after holding high-flying Southampton to a 0-0 draw at St Mary's.
Both sides lacked imagination and creativity throughout, and shots on goal were sparse throughout the 90 minutes. For the home side, Danny Ings had a goal ruled out for offside, while the Hammers' best chance fell to Tomas Soucek - who could only nod straight at Alex McCarthy despite being unmarked at the back post.
The game also saw a sickening blow to the head for Che Adams, as a result of an ill-timed Craig Dawson swipe, but fortunately he didn't appear to suffer any lasting damage, while there was also a return to action for West Ham's lead talisman, Michail Antonio.
Right, that's enough of that, let's rate some players, shall we?
1. Goalkeeper & Defenders
Alex McCarthy (GK) - 7/10 - Was a virtual spectator for the first 85 minutes and then made a terrific stop from Said Benrahma. Excellent concentration.
Kyle Walker-Peters (RB) - 7/10 - Looks more and more assured with every performance. Wonder if Spurs are regretting letting him go? Booked.
Jack Stephens (CB) - 6/10 - Had his hands full with Haller, but dealt well with the Ivorian's threat on the whole. Loves a raking long pass.
Jan Bednarek (CB) - 7/10 - Was missing usual partner Jannik Vestergaard but didn't miss a beat. Reads the game well.
Ryan Bertrand (LB) - 6/10 - Retained possession well enough but didn't offer enough impetus going forward.
Theo Walcott (RM) - 6/10 - Would have fancied his chances against Aaron Cresswell prior to kick off, but drifted in-field more often than not. Troubled Fabianski with a long range effort but pretty quiet.
Oriol Romeu (CM) - 7/10 - A class act in midfield who works so hard and puts his foot in when needed. Underrated outside of Southampton circles.
James Ward-Prowse (CM) - 6/10 - Wasn't at his creative best and did miss a golden opportunity (well, a 20-yard free-kick). Pressing game was on point.
Moussa Djenepo (LM) - 6/10 - A willing runner, but lacked the quality to break down West Ham's backline. Booked and subbed.
Danny Ings (ST) - 5/10 - Had an early goal ruled out for offside but wasn't really at the races.
Che Adams (ST) - 5/10 - Surprised he was able to carry on after Craig Dawson almost decapitated him. Subdued performance and subbed before the hour.
Shane Long (ST) - 6/10 - Came on to stretch the game and get in behind Fredericks and Dawson, but can see why he doesn't score a lot of goals.
Stuart Armstrong (LM) - N/A
5. Goalkeepers & Defenders
Lukasz Fabianski (GK) - 6/10 - Largely untested as Southampton struggled to break through West Ham's low block. Did well to gather Walcott's long range dipper.
Ryan Fredericks (RB) - 6/10 - Should have done better with a header on goal just before half-time, but didn't really put a foot wrong defensively.
Craig Dawson (CB) - 7/10 - Knocked Che Adams' block off with a brutal kick to the back of the head. Wasn't able to top that, but was actually very solid on debut.
Angelo Ogbonna (CB) - 7/10 - The reliable figure in West Ham's defence. Coped with the threat of Ings and Adams comfortably.
Aaron Cresswell (LB) - 6/10 - Probably anticipated a difficult night against Walcott, but actually found Walker-Peters a more troubling proposition. Did well.
Declan Rice (CM) - 7/10 - Picks up so many loose balls and always seems to be in the right place to cut out crosses.
Tomas Soucek (CM) - 6/10 - Busy in midfield but he's not much of a threat unless West Ham are piling balls into the box. Should have scored with a free header at the back stick.
Andriy Yarmolenko (RM) - 5/10 - A first start of the Premier League season for the Ukrainian and you could tell. Off the pace, booked and subbed.
Manuel Lanzini (AM) - 6/10 - Struggled to get on the ball and dictate tempo as he'd have liked. Hooked on the hour in favour of Benrahma.
Pablo Fornals (LM) - 7/10 - Fairly anonymous going forward but defended responsibly, helping West Ham maintain their shape while making a couple of great interceptions. Has a great engine.
Sebastien Haller (ST) - 6/10 - Did well in the air against Stephens, but was isolated for the most part. Not his fault, however, and put a decent shift in. Subbed for Antonio with just over ten minutes left.
Said Benrahma (AM) - 6/10 - David Moyes reckons the Algerian needs to be smarter with his decision making, but he just has that spark that gets you on the edge of your seat. West Ham improved when he came on, and he should have scored late on.
Jarrod Bowen (RM) - N/A
Michail Antonio (ST) - N/A