diff --git a/Game/Antisplice/Dungeon/Ironforge.hs b/Game/Antisplice/Dungeon/Ironforge.hs
--- a/Game/Antisplice/Dungeon/Ironforge.hs
+++ b/Game/Antisplice/Dungeon/Ironforge.hs
@@ -84,11 +84,12 @@
   --  IRONFORGE : THE MILITARY WARD
   militaryW <- constructRoom $ do
     ctorRoom "The Military Ward" "This is where the anti-terror act of the Asocial Network will happen."
-    addRoomObject $ ctorMob "a cangaroo" ["cangaroo","communist"] "This is a communist cangaroo, who has fought for Vietcong." []
-  withRoom militaryW $ do
-    onEnter $ do
+  cangaroo <- withRoom militaryW $ addRoomObject $ do
+    ctorMob "a cangaroo" ["cangaroo","communist"] "This is a communist cangaroo, who has fought for Vietcong." []
+  withObject cangaroo $ do
+    onFirstSight $ do
       let laugh :: Handler
-          laugh = guardVisible militaryW $ do
+          laugh = guardObjectInRoom cangaroo militaryW $ do
             mprintLn "\"Haha!\", the cangaroo says and laughs."
             schedule 10000 laugh
       schedule 10000 laugh
@@ -131,7 +132,7 @@
       ctorMob "%{V1;I}%{V2;g}%{D1;o}%{D2;r}" ["igor"] "This is Igor. I guess he doesn't like you." []
       setMobRoute [tavernW]
       o <- getObjectState
-      onSight $ schedule 0 $ guardVisible toiletW $ do
+      onSight $ schedule 0 $ guardRoom toiletW $ do
         mprintLn "You enter the occupied toilet and see Igor sitting on the pot."
         mprintLn "\"Oops, I'm sorry.\", you say and quickly return to the main room."
         enterAndAnnounce tavernW
diff --git a/ironforge.cabal b/ironforge.cabal
--- a/ironforge.cabal
+++ b/ironforge.cabal
@@ -10,7 +10,7 @@
 -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:             0.1.0.17
+version:             0.1.0.20
 
 -- A short (one-line) description of the package.
 synopsis:            A technical demo for Antisplice.
