diff --git a/NEWS b/NEWS
index b4689cf39..ea141ba62 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,8 @@ ver 0.23.2 (not yet released)
   - pipewire: DSD support
 * neighbor
   - mention failed plugin name in error message
+* player
+  - fix cross-fade regression
 * fix crash with libfmt versions older than 7
 
 ver 0.23.1 (2021/10/19)
diff --git a/src/player/CrossFade.cxx b/src/player/CrossFade.cxx
index 1eeead4b2..caad86e74 100644
--- a/src/player/CrossFade.cxx
+++ b/src/player/CrossFade.cxx
@@ -34,8 +34,8 @@ inline bool
 CrossFadeSettings::CanCrossFadeSong(SignedSongTime total_time) const noexcept
 {
 	return !total_time.IsNegative() &&
-		duration >= MIN_TOTAL_TIME &&
-		duration >= std::chrono::duration_cast<FloatDuration>(total_time);
+		total_time >= MIN_TOTAL_TIME &&
+		duration < std::chrono::duration_cast<FloatDuration>(total_time);
 }
 
 gcc_pure