diff -ruN TankWarnings/Core.lua TankWarnings.fixed/Core.lua
--- TankWarnings/Core.lua	2012-03-17 14:59:42.000000000 -0600
+++ TankWarnings.fixed/Core.lua	2012-12-04 14:32:23.000000000 -0700
@@ -12,7 +12,7 @@
 ]]--
 
 local englishClass = select (2, UnitClass("player"))
-if englishClass ~= "DRUID" and englishClass ~= "PALADIN" and englishClass ~= "WARRIOR" and englishClass ~= "DEATHKNIGHT" then return end
+if englishClass ~= "DRUID" and englishClass ~= "PALADIN" and englishClass ~= "WARRIOR" and englishClass ~= "DEATHKNIGHT"  and englishClass ~= "MONK" then return end
 
 -- Addon Init
 TankWarnings = LibStub("AceAddon-3.0"):NewAddon("TankWarnings", "AceConsole-3.0", "AceEvent-3.0", "LibSink-2.0")
@@ -103,6 +103,19 @@
 	   [55233] = "vb",
         },
     },
+    ["MONK"] = {
+        resists = {
+            [115546] = "provoke",
+        }, 
+        announcements = {
+            [115203] = "fb",
+            [115213] = "ah",
+            [115176] = "zm",
+            [115315] = "oxstatue",
+            [115543] = "leer",
+            [115295] = "guard",
+        },
+    },
 }
 
 --[[
@@ -257,14 +270,15 @@
         -- First check if our sink is sending to raid already, if it is, bail out no need to send this
         if self.db.profile.messages.sinkOptions.sink20OutputSink ~= "RaidWarning" then
             -- Check if were in a raid, if we are, check if we have permissions to send the message there
-            if GetNumRaidMembers() > 0 then
+            if IsInRaid() then
                 if self:IsPromoted() then
                     SendChatMessage(message, "RAID_WARNING")
                 else
-                    self:Print(L["Cannot send message to raid, not promoted"])
+                    --self:Print(L["Cannot send message to raid, not promoted"])
+                    SendChatMessage(message, "RAID")
                 end
-            elseif GetNumPartyMembers() > 0 then -- in a party ? send to raid warning anyway, doesn't need promotion
-                SendChatMessage(message, "RAID_WARNING")
+            elseif GetNumGroupMembers() > 0 then -- in a party ? send to raid warning anyway, doesn't need promotion
+                SendChatMessage(message, "PARTY")
             end
         end
     end
@@ -273,13 +287,13 @@
     -- but he is in a party instead, falls back to party
     -- ticket #1 by Castnicke
     if self.db.profile.messages.sinkOptions.sink20OutputSink == "Channel" and self.db.profile.messages.sinkOptions.sink20ScrollArea == "Raid" then
-        if GetNumRaidMembers() == 0 then
+        if IsInRaid() then
             -- Set the sink to temporarily be PARTY, doesn't get saved on user options
             self.db.profile.messages.sinkOptions.sink20ScrollArea = "Party"
             
             -- Send the message now so we can restore the setting after
             -- send it only if were on a party, if were not in a party then don't, restore the setting below and leave
-            if GetNumPartyMembers() > 0 then
+            if GetNumGroupMembers() > 0 then
                 self:Pour(message, 1, 0, 0, nil, 24, "OUTLINE", true)
             end
             
@@ -395,7 +409,8 @@
     @return boolean true if promoted or leader false otherwise
 ]]--
 function tw:IsPromoted()
-	return IsRaidLeader() or IsRaidOfficer() and true or nil
+	--return IsRaidLeader() or IsRaidOfficer() and true or nil
+	return UnitIsGroupLeader("player") or UnitIsGroupAssistant("player") and true or nil
 end
 
 --[[
@@ -529,6 +544,16 @@
                     width = "full",
                     order = 9,
                 },
+                provoke = {
+                    type = "toggle",
+                    name = L["Provoke"],
+                    desc = L["Announces resisted provoke"],
+                    get = function(info) return db.profile.resists.provoke end,
+                    set = function(info, v) db.profile.resists.provoke = v end,
+                    hidden = tw:FilterOptionsByClass("MONK"),
+                    width = "full",
+                    order = 10,
+                },
             },
         },
         announcements = {
@@ -757,6 +782,66 @@
                     width = "full",
                     order = 22,
 		},				 
+                fb = {
+                    type = "toggle",
+                    name = L["Fortifying Brew"],
+                    desc = L["Fortifying Brew"],
+                    get = function(info) return db.profile.announcements.fb end,
+                    set = function(info, v) db.profile.announcements.fb = v end,
+                    hidden = tw:FilterOptionsByClass("MONK"),
+                    width = "full",
+                    order = 23,
+                },
+                ah = {
+                    type = "toggle",
+                    name = L["Avert Harm"],
+                    desc = L["Avert Harm"],
+                    get = function(info) return db.profile.announcements.ah end,
+                    set = function(info, v) db.profile.announcements.ah = v end,
+                    hidden = tw:FilterOptionsByClass("MONK"),
+                    width = "full",
+                    order = 24,
+                },
+                zm = {
+                    type = "toggle",
+                    name = L["Zen Meditation"],
+                    desc = L["Zen Meditation"],
+                    get = function(info) return db.profile.announcements.zm end,
+                    set = function(info, v) db.profile.announcements.zm = v end,
+                    hidden = tw:FilterOptionsByClass("MONK"),
+                    width = "full",
+                    order = 25,
+                },
+                oxstatue = {
+                    type = "toggle",
+                    name = L["Summon Black Ox Statue"],
+                    desc = L["Summon Black Ox Statue"],
+                    get = function(info) return db.profile.announcements.oxstatue end,
+                    set = function(info, v) db.profile.announcements.oxstatue = v end,
+                    hidden = tw:FilterOptionsByClass("MONK"),
+                    width = "full",
+                    order = 26,
+                },
+                leer = {
+                    type = "toggle",
+                    name = L["Leer of the Ox"],
+                    desc = L["Leer of the Ox"],
+                    get = function(info) return db.profile.announcements.leer end,
+                    set = function(info, v) db.profile.announcements.leer = v end,
+                    hidden = tw:FilterOptionsByClass("MONK"),
+                    width = "full",
+                    order = 27,
+                },
+                guard = {
+                    type = "toggle",
+                    name = L["Guard"],
+                    desc = L["Guard"],
+                    get = function(info) return db.profile.announcements.guard end,
+                    set = function(info, v) db.profile.announcements.guard = v end,
+                    hidden = tw:FilterOptionsByClass("MONK"),
+                    width = "full",
+                    order = 28,
+                },
                 headerbw = {
                     type = "header",
                     name = L["BigWigs Timers"],
@@ -1213,6 +1298,66 @@
                             width = "full",
                             order = 22,
                         },
+                        fb = {
+                            type = "input",
+                            name = L["Fortifying Brew"],
+                            desc = L["MessagesInfoNoTarget"],
+                            get = function(info) return db.profile.messages.announcements.fb end,
+                            set = function(info, v) db.profile.messages.announcements.fb = v end,
+                            hidden = tw:FilterOptionsByClass("MONK"),
+                            width = "full",
+                            order = 23,
+                        },
+                        ah = {
+                            type = "input",
+                            name = L["Avert Harm"],
+                            desc = L["MessagesInfoNoTarget"],
+                            get = function(info) return db.profile.messages.announcements.ah end,
+                            set = function(info, v) db.profile.messages.announcements.ah = v end,
+                            hidden = tw:FilterOptionsByClass("MONK"),
+                            width = "full",
+                            order = 24,
+                        },
+                        zm = {
+                            type = "input",
+                            name = L["Zen Meditation"],
+                            desc = L["MessagesInfoNoTarget"],
+                            get = function(info) return db.profile.messages.announcements.zm end,
+                            set = function(info, v) db.profile.messages.announcements.zm = v end,
+                            hidden = tw:FilterOptionsByClass("MONK"),
+                            width = "full",
+                            order = 25,
+                        },
+                        oxstatue = {
+                            type = "input",
+                            name = L["Summon Black Ox Statue"],
+                            desc = L["MessagesInfoNoTarget"],
+                            get = function(info) return db.profile.messages.announcements.oxstatue end,
+                            set = function(info, v) db.profile.messages.announcements.oxstatue = v end,
+                            hidden = tw:FilterOptionsByClass("MONK"),
+                            width = "full",
+                            order = 26,
+                        },
+                        leer = {
+                            type = "input",
+                            name = L["Leer of the Ox"],
+                            desc = L["MessagesInfo"],
+                            get = function(info) return db.profile.messages.announcements.leer end,
+                            set = function(info, v) db.profile.messages.announcements.leer = v end,
+                            hidden = tw:FilterOptionsByClass("MONK"),
+                            width = "full",
+                            order = 27,
+                        },
+                        guard = {
+                            type = "input",
+                            name = L["Guard"],
+                            desc = L["MessagesInfoNoTarget"],
+                            get = function(info) return db.profile.messages.announcements.guard end,
+                            set = function(info, v) db.profile.messages.announcements.guard = v end,
+                            hidden = tw:FilterOptionsByClass("MONK"),
+                            width = "full",
+                            order = 28,
+                        },
                     },
                 },
             },
@@ -1235,6 +1380,7 @@
 	 hor = true,
 	 darkcommand = true,
 	 deathgrip = true,
+         provoke = true,
 	 messages = {
 	 }
       },
@@ -1261,6 +1407,12 @@
 	 ams = true,
 	 drw = true,
 	 vb = true,
+	 fb = true,
+	 ah = true,
+	 zm = true,
+	 oxstatue = true,
+	 leer = true,
+	 guard = true,
 	 bigwigs = {
 	    enable = true,
 	    global = true,
@@ -1288,6 +1440,7 @@
 	    hor = L["HandOfReckoningMessage"],
 	    darkcommand = L["DarkCommandMessage"],
 	    deathgrip = L["DeathGripMessage"],
+            provoke = L["ProvokeMessage"],
 	 },
 	 announcements = {
 	    shout = L["ChallengingShoutMessage"],
@@ -1312,6 +1465,12 @@
 	    ams = L["AntiMagicShellMessage"],
 	    vb = L["VampiricBloodMessage"],
 	    drw = L["DancingRuneWeaponMessage"],
+	    fb = L["FortifyingBrewMessage"],
+	    ah = L["AvertHarmMessage"],
+	    zm = L["ZenMeditationMessage"],
+	    oxstatue = L["SummonBlackOxStatueMessage"],
+	    leer = L["LeerOfTheOxMessage"],
+	    guard = L["GuardMessage"],
 	 },
       },
    },
diff -ruN TankWarnings/Localization.lua TankWarnings.fixed/Localization.lua
--- TankWarnings/Localization.lua	2012-03-17 14:59:42.000000000 -0600
+++ TankWarnings.fixed/Localization.lua	2012-12-04 14:26:03.000000000 -0700
@@ -23,6 +23,8 @@
 L["Announces resisted dark command"] = true
 L["Death Grip"] = true
 L["Announces resisted death grip"] = true
+L["Provoke"] = true
+L["Announces resisted provoke"] = true
 -- Announcements
 L["Announcements"] = true
 L["Settings for announcements"] = true
@@ -46,6 +48,12 @@
 L["Vampiric Blood"] = true
 L["Dancing Rune Weapon"] = true
 L["Death Pact"] = true
+L["Fortifying Brew"] = true
+L["Avert Harm"] = true
+L["Zen Meditation"] = true
+L["Summon Black Ox Statue"] = true
+L["Leer of the Ox"] = true
+L["Guard"] = true
 L["BigWigs Timers"] = true
 L["Enable BigWigs Timer Bars"] = true
 L["Enable the display of BigWigs timer bars of your skills showing the time they last"] = true
@@ -87,6 +95,7 @@
 L["HandOfReckoningMessage"] = ">>> Hand of Reckoning failed against: {t} ({l}) <<<"
 L["DarkCommandMessage"] = ">>> Dark Command failed against: {t} ({l}) <<<"
 L["DeathGripMessage"] = ">>> Death Grip failed against: {t} ({l}) <<<"
+L["ProvokeMessage"] = ">>> Provoke failed against: {t} ({l}) <<<"
 L["ChallengingShoutMessage"] = ">>> Challenging Shout used (6 sec) <<<"
 L["ShieldWallMessage"] = ">>> Shield Wall used <<<"
 L["LastStandMessage"] = ">>> Last Stand used <<<"
@@ -109,6 +118,12 @@
 L["AntiMagicShellMessage"] = ">>> Anti-Magic Shell used <<<"
 L["VampiricBloodMessage"] = ">>> Vampiric Blood used <<<"
 L["DancingRuneWeaponMessage"] = ">>> Dancing Rune Weapon used <<<"
+L["FortifyingBrewMessage"] = ">>> Fortifying Brew used <<<"
+L["AvertHarmMessage"] = ">>> Avert Harm used  (6 sec)<<<"
+L["ZenMeditationMessage"] = ">>> Zen Meditation used <<<"
+L["SummonBlackOxStatueMessage"] = ">>> Summon Black Ox Statue used <<<"
+L["LeerOfTheOxMessage"] = ">>> Leer of the Ox used on {t} <<<"
+L["GuardMessage"] = ">>> Guard used <<<"
 
 -- Misc
 L["Boss"] = true
