diff --git a/recipes-extended/wpe-framework/wpeframework-interfaces/r4.2/0001-RDKV-48604-User-Settings-Thunder-Plugin.patch b/recipes-extended/wpe-framework/wpeframework-interfaces/r4.2/0001-RDKV-48604-User-Settings-Thunder-Plugin.patch
index 959b046..3f41d85 100644
--- a/recipes-extended/wpe-framework/wpeframework-interfaces/r4.2/0001-RDKV-48604-User-Settings-Thunder-Plugin.patch
+++ b/recipes-extended/wpe-framework/wpeframework-interfaces/r4.2/0001-RDKV-48604-User-Settings-Thunder-Plugin.patch
@@ -6,8 +6,8 @@
 
 diff -uprN a/interfaces/IUserSettings.h b/interfaces/IUserSettings.h
 --- a/interfaces/IUserSettings.h	1970-01-01 03:00:00.000000000 +0300
-+++ b/interfaces/IUserSettings.h	2024-06-27 18:41:13.733055666 +0300
-@@ -0,0 +1,178 @@
++++ b/interfaces/IUserSettings.h	2024-07-12 22:10:05.921196986 +0300
+@@ -0,0 +1,166 @@
 +/*
 + * If not stated otherwise in this file or this component's LICENSE file the
 + * following copyright and licenses apply:
@@ -80,19 +80,16 @@
 +  virtual uint32_t Register(Exchange::IUserSettings::INotification* notification /* @in */) = 0;
 +  virtual uint32_t Unregister(Exchange::IUserSettings::INotification* notification /* @in */) = 0;
 +
-+  // @property
 +  // @alt SetAudioDescription
 +  // @brief Sets AudioDescription ON/OFF. Players should preferred Audio Descriptive tracks over normal audio track when enabled
 +  // @param enabled: Enabled/Disabled
 +  virtual uint32_t SetAudioDescription(const bool enabled /* @in */) = 0;
 +
-+  // @property
 +  // @alt GetAudioDescription
 +  // @brief Gets the current AudioDescription setting
 +  // @param enabled: Enabled/Disabled
 +  virtual uint32_t GetAudioDescription(bool &enabled /* @out */) const = 0;
 +
-+  // @property
 +  // @alt SetPreferredAudioLanguages
 +  // @brief A prioritized list of ISO 639-2/B codes for the preferred audio languages,
 +  // expressed as a comma separated lists of languages of zero of more elements.
@@ -102,25 +99,21 @@
 +  // @param preferredLanguages: PreferredLanguages
 +  virtual uint32_t SetPreferredAudioLanguages(const string& preferredLanguages  /* @in @text preferredLanguages */) = 0;
 +
-+  // @property
 +  // @alt GetPreferredAudioLanguages
 +  // @brief Gets the current PreferredAudioLanguages setting
 +  // @param preferredLanguages: PreferredLanguages
 +  virtual uint32_t GetPreferredAudioLanguages(string &preferredLanguages /* @out @text preferredLanguages */) const = 0;
 +
-+  // @property
 +  // @alt SetPresentationLanguage
 +  // @brief Sets the presentationLanguages in a full BCP 47 value, including script, region, variant
 +  // @param presentationLanguages: "en-US", "es-US", "en-CA", "fr-CA"
 +  virtual uint32_t SetPresentationLanguage(const string& presentationLanguages /* @in @text presentationLanguages */) = 0;
 +
-+  // @property
 +  // @alt GetPresentationLanguage
 +  // @brief Gets the presentationLanguages
 +  // @param presentationLanguages: "en-US", "es-US", "en-CA", "fr-CA"
 +  virtual uint32_t GetPresentationLanguage(string &presentationLanguages /* @out @text presentationLanguages */) const = 0;
 +
-+  // @property
 +  // @alt SetCaptions
 +  // @brief brief Sets Captions ON/OFF.
 +  // @details A setting of ON indicates that Players should select a subtitle track for presentation
@@ -135,13 +128,11 @@
 +  // @param enabled Sets the state
 +  virtual uint32_t SetCaptions(const bool enabled  /* @in */) = 0;
 +
-+  // @property
 +  // @alt GetCaptions
 +  // @brief Gets the Captions setting.
 +  // @param enabled Receives the state
 +  virtual uint32_t GetCaptions(bool &enabled /* @out */) const = 0;
 +
-+  // @property
 +  // @alt SetPreferredCaptionsLanguages
 +  // @brief Set preferred languages for captions.
 +  // @details A prioritized list of ISO 639-2/B codes for the preferred Captions languages,
@@ -152,13 +143,11 @@
 +  // @param preferredLanguages Is the list to set (e.g. "eng,fra")
 +  virtual uint32_t SetPreferredCaptionsLanguages(const string& preferredLanguages  /* @in @text preferredLanguages */) = 0;
 +
-+  // @property
 +  // @alt GetPreferredCaptionsLanguages
 +  // @brief Gets the current PreferredCaptionsLanguages setting.
 +  // @param preferredLanguages (e.g. "eng,fra")
 +  virtual uint32_t GetPreferredCaptionsLanguages(string &preferredLanguages /* @out @text preferredLanguages */) const = 0;
 +
-+  // @property
 +  // @alt SetPreferredClosedCaptionService
 +  // @brief Sets the PreferredClosedCaptionService.
 +  // @details The setting should be honored by the player. The behaviour of AUTO may be player specific.
@@ -166,7 +155,6 @@
 +  // @param service Identifies the service to display e.g. "CC3".
 +  virtual uint32_t SetPreferredClosedCaptionService(const string& service  /* @in */) = 0;
 +
-+  // @property
 +  // @alt GetPreferredClosedCaptionService
 +  // @brief Gets the current PreferredClosedCaptionService setting.
 +  // @param service Identifies the service to display e.g. "CC3".
diff --git a/recipes-extended/wpe-framework/wpeframework-interfaces/r4.4/0001-RDKV-48604-User-Settings-Thunder-Plugin_4.4.patch b/recipes-extended/wpe-framework/wpeframework-interfaces/r4.4/0001-RDKV-48604-User-Settings-Thunder-Plugin_4.4.patch
index 81c2944..0d91133 100644
--- a/recipes-extended/wpe-framework/wpeframework-interfaces/r4.4/0001-RDKV-48604-User-Settings-Thunder-Plugin_4.4.patch
+++ b/recipes-extended/wpe-framework/wpeframework-interfaces/r4.4/0001-RDKV-48604-User-Settings-Thunder-Plugin_4.4.patch
@@ -6,8 +6,8 @@
 
 diff -uprN a/interfaces/IUserSettings.h b/interfaces/IUserSettings.h
 --- a/interfaces/IUserSettings.h	1970-01-01 03:00:00.000000000 +0300
-+++ b/interfaces/IUserSettings.h	2024-06-27 18:41:13.733055666 +0300
-@@ -0,0 +1,178 @@
++++ b/interfaces/IUserSettings.h	2024-07-12 22:10:05.921196986 +0300
+@@ -0,0 +1,166 @@
 +/*
 + * If not stated otherwise in this file or this component's LICENSE file the
 + * following copyright and licenses apply:
@@ -80,19 +80,16 @@
 +  virtual uint32_t Register(Exchange::IUserSettings::INotification* notification /* @in */) = 0;
 +  virtual uint32_t Unregister(Exchange::IUserSettings::INotification* notification /* @in */) = 0;
 +
-+  // @property
 +  // @alt SetAudioDescription
 +  // @brief Sets AudioDescription ON/OFF. Players should preferred Audio Descriptive tracks over normal audio track when enabled
 +  // @param enabled: Enabled/Disabled
 +  virtual uint32_t SetAudioDescription(const bool enabled /* @in */) = 0;
 +
-+  // @property
 +  // @alt GetAudioDescription
 +  // @brief Gets the current AudioDescription setting
 +  // @param enabled: Enabled/Disabled
 +  virtual uint32_t GetAudioDescription(bool &enabled /* @out */) const = 0;
 +
-+  // @property
 +  // @alt SetPreferredAudioLanguages
 +  // @brief A prioritized list of ISO 639-2/B codes for the preferred audio languages,
 +  // expressed as a comma separated lists of languages of zero of more elements.
@@ -102,25 +99,21 @@
 +  // @param preferredLanguages: PreferredLanguages
 +  virtual uint32_t SetPreferredAudioLanguages(const string& preferredLanguages  /* @in @text preferredLanguages */) = 0;
 +
-+  // @property
 +  // @alt GetPreferredAudioLanguages
 +  // @brief Gets the current PreferredAudioLanguages setting
 +  // @param preferredLanguages: PreferredLanguages
 +  virtual uint32_t GetPreferredAudioLanguages(string &preferredLanguages /* @out @text preferredLanguages */) const = 0;
 +
-+  // @property
 +  // @alt SetPresentationLanguage
 +  // @brief Sets the presentationLanguages in a full BCP 47 value, including script, region, variant
 +  // @param presentationLanguages: "en-US", "es-US", "en-CA", "fr-CA"
 +  virtual uint32_t SetPresentationLanguage(const string& presentationLanguages /* @in @text presentationLanguages */) = 0;
 +
-+  // @property
 +  // @alt GetPresentationLanguage
 +  // @brief Gets the presentationLanguages
 +  // @param presentationLanguages: "en-US", "es-US", "en-CA", "fr-CA"
 +  virtual uint32_t GetPresentationLanguage(string &presentationLanguages /* @out @text presentationLanguages */) const = 0;
 +
-+  // @property
 +  // @alt SetCaptions
 +  // @brief brief Sets Captions ON/OFF.
 +  // @details A setting of ON indicates that Players should select a subtitle track for presentation
@@ -135,13 +128,11 @@
 +  // @param enabled Sets the state
 +  virtual uint32_t SetCaptions(const bool enabled  /* @in */) = 0;
 +
-+  // @property
 +  // @alt GetCaptions
 +  // @brief Gets the Captions setting.
 +  // @param enabled Receives the state
 +  virtual uint32_t GetCaptions(bool &enabled /* @out */) const = 0;
 +
-+  // @property
 +  // @alt SetPreferredCaptionsLanguages
 +  // @brief Set preferred languages for captions.
 +  // @details A prioritized list of ISO 639-2/B codes for the preferred Captions languages,
@@ -152,13 +143,11 @@
 +  // @param preferredLanguages Is the list to set (e.g. "eng,fra")
 +  virtual uint32_t SetPreferredCaptionsLanguages(const string& preferredLanguages  /* @in @text preferredLanguages */) = 0;
 +
-+  // @property
 +  // @alt GetPreferredCaptionsLanguages
 +  // @brief Gets the current PreferredCaptionsLanguages setting.
 +  // @param preferredLanguages (e.g. "eng,fra")
 +  virtual uint32_t GetPreferredCaptionsLanguages(string &preferredLanguages /* @out @text preferredLanguages */) const = 0;
 +
-+  // @property
 +  // @alt SetPreferredClosedCaptionService
 +  // @brief Sets the PreferredClosedCaptionService.
 +  // @details The setting should be honored by the player. The behaviour of AUTO may be player specific.
@@ -166,7 +155,6 @@
 +  // @param service Identifies the service to display e.g. "CC3".
 +  virtual uint32_t SetPreferredClosedCaptionService(const string& service  /* @in */) = 0;
 +
-+  // @property
 +  // @alt GetPreferredClosedCaptionService
 +  // @brief Gets the current PreferredClosedCaptionService setting.
 +  // @param service Identifies the service to display e.g. "CC3".
