diff --git a/esoui/libraries/zo_templates/buttontemplates.lua b/esoui/libraries/zo_templates/buttontemplates.lua
index 324a0d1..d843f1a 100755
--- a/esoui/libraries/zo_templates/buttontemplates.lua
+++ b/esoui/libraries/zo_templates/buttontemplates.lua
@@ -171,11 +171,19 @@ function ZO_ToggleButton_GetState(toggleButton)
     return toggleButton.state
 end
 
+function ZO_CheckButtonLabel_SetDefaultColors(label, defaultNormalColor, defaultHighlightColor)
+    label.defaultNormalColor = defaultNormalColor
+    label.defaultHighlightColor = defaultHighlightColor
+end
+
 function ZO_CheckButtonLabel_ColorText(label, over)
+    local normalColor = label.defaultNormalColor or ZO_NORMAL_TEXT
+    local highlightColor = label.defaultHighlightColor or ZO_HIGHLIGHT_TEXT
+    
     if(over) then
-        label:SetColor(ZO_HIGHLIGHT_TEXT:UnpackRGBA())
+        label:SetColor(highlightColor:UnpackRGBA())
     else
-        label:SetColor(ZO_NORMAL_TEXT:UnpackRGBA())
+        label:SetColor(normalColor:UnpackRGBA())      
     end
 end
 
@@ -190,6 +198,8 @@ function ZO_CheckButton_SetLabelText(button, labelText)
         label:SetAnchor(LEFT, button, RIGHT, 5, 0)
         ZO_PreHookHandler(button, "OnMouseEnter", function() ZO_CheckButtonLabel_ColorText(label, true) end)
         ZO_PreHookHandler(button, "OnMouseExit", function() ZO_CheckButtonLabel_ColorText(label, false) end)
+        ZO_PreHookHandler(label, "OnMouseEnter", function() button:GetHandler("OnMouseEnter")(button) end)
+        ZO_PreHookHandler(label, "OnMouseExit", function() button:GetHandler("OnMouseExit")(button) end)
 
         button.label = label
     end
@@ -213,26 +223,23 @@ function ZO_CheckButton_SetLabelWidth(button, labelWidth)
     end
 end
 
-function ZO_CheckButton_OnClicked(buttonControl, mouseButton)
+function ZO_CheckButton_OnClicked(buttonControl)
     PlaySound(SOUNDS.DEFAULT_CLICK)
     
     local bState = buttonControl:GetState()
     local callToggleFunc = true
     local checked = true
 
-    if(bState == BSTATE_NORMAL)
-    then
+    if bState == BSTATE_NORMAL then
         ZO_CheckButton_SetChecked(buttonControl)
-    elseif(bState == BSTATE_PRESSED)
-    then
+    elseif bState == BSTATE_PRESSED then
         ZO_CheckButton_SetUnchecked(buttonControl)
         checked = false
     else
         callToggleFunc = false
     end
 
-    if((buttonControl.toggleFunction ~= nil) and callToggleFunc)
-    then
+    if (buttonControl.toggleFunction ~= nil) and callToggleFunc then
         buttonControl:toggleFunction(checked)
     end
 end