diff --git a/meta/classes/gettext.bbclass b/meta/classes/gettext.bbclass
index a40e74f..f7b84ec 100644
--- a/meta/classes/gettext.bbclass
+++ b/meta/classes/gettext.bbclass
@@ -1,17 +1,31 @@
 def gettext_after_parse(d):
-    # Remove the NLS bits if USE_NLS is no.
-    if bb.data.getVar('USE_NLS', d, 1) == 'no':
-        cfg = oe_filter_out('^--(dis|en)able-nls$', bb.data.getVar('EXTRA_OECONF', d, 1) or "", d)
-        cfg += " --disable-nls"
-        depends = bb.data.getVar('DEPENDS', d, 1) or ""
-        bb.data.setVar('DEPENDS', oe_filter_out('^(virtual/libiconv|virtual/libintl)$', depends, d), d)
-        bb.data.setVar('EXTRA_OECONF', cfg, d)
-
+   # Remove the NLS bits if USE_NLS is no.
+   if bb.data.getVar('USE_NLS', d, True) == 'no':
+       cfg = oe_filter_out('^--(dis|en)able-nls$', bb.data.getVar('EXTRA_OECONF', d, 1) or "", d)
+       cfg += " --disable-nls"
+       depends = bb.data.getVar('DEPENDS', d, True) or ""
+       depends = oe_filter_out('^(virtual/libiconv|virtual/libintl|virtual/gettext|gettext)$', depends, d)
+       if not oe.utils.inherits(d, 'native', 'nativesdk', 'cross', 'crosssdk'):
+           depends = oe_filter_out('^(gettext-native)$', depends, d)
+       bb.data.setVar('DEPENDS', depends, d)
+       bb.data.setVar('EXTRA_OECONF', cfg, d)
+   # check if INHIBIT_DEFAULT_DEPS is 1 then we forcibly remove dependencies
+   # added by this class through DEPENDS_GETTEXT
+   if bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, True):
+       depends_native = bb.data.getVar('DEPENDS_virtclass-native', d, True) or ""
+       depends_nativesdk = bb.data.getVar('DEPENDS_virtclass-nativesdk', d, True) or ""
+       depends = bb.data.getVar('DEPENDS', d, True) or ""
+       gettext_deps = bb.data.getVar('DEPENDS_GETTEXT', d, True).replace(' ','|')
+       gettext_deps = '^(' + gettext_deps + ')$'
+       depends_native = oe_filter_out(gettext_deps, depends_native, d)
+       depends_nativesdk = oe_filter_out(gettext_deps, depends_nativesdk, d)
+       depends = oe_filter_out(gettext_deps, depends, d)
+       bb.data.setVar('DEPENDS_virtclass-native', depends, d)
+       bb.data.setVar('DEPENDS_virtclass-nativesdk', depends, d)
+       bb.data.setVar('DEPENDS', depends, d)
 python () {
     gettext_after_parse(d)
 }
-
-DEPENDS_GETTEXT = "gettext gettext-native"
-
-DEPENDS =+ "${DEPENDS_GETTEXT}"
 EXTRA_OECONF += "--enable-nls"
+DEPENDS_GETTEXT ?= "virtual/gettext"
+DEPENDS_append = " ${DEPENDS_GETTEXT} "
