diff --git a/achievements.module b/achievements.module
index b9344b5..a1cb243 100644
--- a/achievements.module
+++ b/achievements.module
@@ -533,6 +533,11 @@ function achievements_locked($achievement_id, $uid = NULL) {
     else { // With no previous unlock, remove from leaderboard entirely.
       db_delete('achievement_totals')->condition('uid', $uid)->execute();
     }
+    
+    // update the unlocked_already static cache so that it returns accurate
+    // unlocks for the rest of the page load.
+    $unlocks = &drupal_static('achievements_unlocked_already');
+    unset($unlocks[$uid][$achievement_id]);
 
     // remove any storage associated with this achievement.
     achievements_storage_del($achievement['id'], $uid);
