diff --git a/src-electron/generator/helper-zcl.js b/src-electron/generator/helper-zcl.js
index c761c94073b7e1e0bf5b983f5e59145a0a91d70d..fd1f78f61411efca25bdc0133c4ea3be79325f29 100644
--- a/src-electron/generator/helper-zcl.js
+++ b/src-electron/generator/helper-zcl.js
@@ -529,15 +529,19 @@ function zcl_command_argument_data_type(type, options) {
         .then((resType) => {
           switch (resType) {
             case dbEnum.zclType.bitmap:
-              return helperC.dataTypeForBitmap(this.global.db, type, packageId)
+              return helperC.data_type_for_bitmap(
+                this.global.db,
+                type,
+                packageId
+              )
             case dbEnum.zclType.enum:
-              return helperC.dataTypeForEnum(this.global.db, type, packageId)
+              return helperC.data_type_for_enum(this.global.db, type, packageId)
             case dbEnum.zclType.struct:
               return options.hash.struct
             case dbEnum.zclType.atomic:
             case dbEnum.zclType.unknown:
             default:
-              return helperC.asCliType(type)
+              return helperC.as_cli_type(type)
           }
         })
         .catch((err) => {
diff --git a/src-electron/generator/template-engine.js b/src-electron/generator/template-engine.js
index 45a25b616a63e4e84fe9a925cc586229029a4ae2..750b18ecdb535dc2cf45b47f988a41457fcf6ebd 100644
--- a/src-electron/generator/template-engine.js
+++ b/src-electron/generator/template-engine.js
@@ -70,8 +70,10 @@ function produceContent(
   return produceCompiledTemplate(singleTemplatePkg).then((template) =>
     template({
       global: {
+        deprecationWarnings: {},
         db: db,
         sessionId: sessionId,
+        templatePath: singleTemplatePkg.path,
         promises: [],
         genTemplatePackageId: genTemplateJsonPackageId,
         overridable: loadOverridable(overridePath),
@@ -158,6 +160,9 @@ function allGlobalHelpers() {
   includedHelpers.forEach((path) => {
     var h = require(path)
     for (const singleHelper in h) {
+      if (allHelpers.api[singleHelper] != null) {
+        allHelpers.duplicates.push(singleHelper)
+      }
       allHelpers.api[singleHelper] = h[singleHelper]
     }
   })
diff --git a/src-electron/generator/template-util.js b/src-electron/generator/template-util.js
index 5e996e9398cfc0597649ec63cdff52cbbe3a2173..56a8b0b4710c2c669a6a3173487d5c644843d7c0 100644
--- a/src-electron/generator/template-util.js
+++ b/src-electron/generator/template-util.js
@@ -302,9 +302,11 @@ function deprecatedHelper(fn, explanation) {
   } else {
     msg = `Deprecated helper resolved into ${fn.name}. Please use the new helper directly.`
   }
-
   var f = function () {
-    env.logWarning(msg)
+    if (this.global.deprecationWarnings[fn.name] == null) {
+      this.global.deprecationWarnings[fn.name] = true
+      env.logWarning(`${this.global.templatePath} : ${msg}`)
+    }
     return fn.apply(this, arguments)
   }
   f.isDeprecated = true
diff --git a/test/helper-api.test.js b/test/helper-api.test.js
index 97d7d0237976a0e7aac2fb8be30a995ed3a084bd..c0f362584ea63a78c4198e5451031c438691fdd7 100644
--- a/test/helper-api.test.js
+++ b/test/helper-api.test.js
@@ -32,6 +32,12 @@ test('helper functions need to be snake_case without uppercase characters unless
   }
 })
 
+test('check that there is no overlapping duplicates', () => {
+  var helpers = templateEngine.allGlobalHelpers()
+  var dups = helpers.duplicates.join(', ')
+  expect(dups).toBe('')
+})
+
 test('compare APIs against the baseline', () => {
   var apiFromFile = JSON.parse(
     fs.readFileSync(path.join(__dirname, 'helper-api-baseline.json'))