diff --git a/code/modules/spellbook/_spellbook.dm b/code/modules/spellbook/_spellbook.dm
index 2cbbe129e7f..ef960d7f3c9 100644
--- a/code/modules/spellbook/_spellbook.dm
+++ b/code/modules/spellbook/_spellbook.dm
@@ -227,9 +227,9 @@ GLOBAL_LIST_EMPTY(spells_by_categories)
dat += "Purchase ([initial(S.spell_cost)] points)
"
else if(OS.level_max[UPGRADE_TOTAL] > 0)
var/up_count = 0
- for(var/up_type in spell_levels)
- up_count += spell_levels[up_type]
- dat += "Maximum amount of upgrades: [up_count]/[OS.level_max[UPGRADE_TOTAL]]"
+ for(var/up_type in OS.spell_levels)
+ up_count += OS.spell_levels[up_type]
+ dat += "Maximum amount of upgrades: [up_count]/[OS.level_max[UPGRADE_TOTAL]].
"
for(var/upgrade_type in OS.spell_levels)
if(OS.level_max[upgrade_type] <= 0)
continue
diff --git a/code/modules/spells/_spell.dm b/code/modules/spells/_spell.dm
index 58d0e83394c..cf0ec158c21 100644
--- a/code/modules/spells/_spell.dm
+++ b/code/modules/spells/_spell.dm
@@ -365,8 +365,7 @@
if(!user.mind)
return FALSE
var/mob/living/L = user
- L.mind.mana.UseMana(L, amount, FALSE)
- return TRUE
+ return L.mind.mana.UseMana(L, amount, FALSE)
/datum/spell/proc/invocation(mob/user = usr, var/list/targets) //spelling the spell out and setting it on recharge/reducing charges amount
diff --git a/code/modules/spells/hand/_hand.dm b/code/modules/spells/hand/_hand.dm
index 260ce7c5a30..c635d5a4fca 100644
--- a/code/modules/spells/hand/_hand.dm
+++ b/code/modules/spells/hand/_hand.dm
@@ -66,8 +66,6 @@
/datum/spell/hand/proc/cast_hand(atom/a, mob/user) //same for casting.
if(!TakeMana(user, mana_cost_per_cast))
return FALSE
- SEND_SIGNAL(user, COMSIG_SPELL_CAST_HAND, src, a)
- SEND_GLOBAL_SIGNAL(COMSIG_GLOB_SPELL_CAST_HAND, user, src, a)
return TRUE
/datum/spell/hand/charges
diff --git a/code/modules/spells/hand/_hand_item.dm b/code/modules/spells/hand/_hand_item.dm
index e5360e480d8..dcf6bbdf23d 100644
--- a/code/modules/spells/hand/_hand_item.dm
+++ b/code/modules/spells/hand/_hand_item.dm
@@ -47,6 +47,8 @@ Basically: I can use it to target things where I click. I can then pass these ta
user.visible_message("\The [user][hand_spell.show_message]")
if(hand_spell.cast_hand(A,user))
next_spell_time = world.time + hand_spell.spell_delay
+ SEND_SIGNAL(user, COMSIG_SPELL_CAST_HAND, hand_spell, A)
+ SEND_GLOBAL_SIGNAL(COMSIG_GLOB_SPELL_CAST_HAND, user, hand_spell, A)
if(hand_spell.move_delay)
user.ExtraMoveCooldown(hand_spell.move_delay)
if(hand_spell.click_delay)