diff --git a/boomslang.cabal b/boomslang.cabal
--- a/boomslang.cabal
+++ b/boomslang.cabal
@@ -1,5 +1,5 @@
 name:        boomslang
-version:     0.0.2
+version:     0.0.3
 
 category:    Game
 
@@ -53,7 +53,7 @@
       data-accessor          == 0.*,
       data-accessor-template == 0.*,
       font-opengl-basic4x6   == 0.*,
-      mtl                    == 1.*
+      mtl                    == 1.* || == 2.*
   else
     build-depends:
       GLFW-b                 == 0.*,
diff --git a/src/Game/Logic.hs b/src/Game/Logic.hs
--- a/src/Game/Logic.hs
+++ b/src/Game/Logic.hs
@@ -182,20 +182,14 @@
         p'  = p ^+^ (realToFrac v .*^ d)
         p'x = realToFrac $ Vector.getX p'
         p'y = realToFrac $ Vector.getY p'
-        (p'x',fdx) =
-          if p'x+r > 1
-            then (2-p'x-(2*r),True)
-            else
-              if p'x-r < -1
-                then (-2-p'x+(2*r),True)
-                else (p'x,False)
-        (p'y',fdy) =
-          if p'y+r > 1
-            then (2-p'y-(2*r),True)
-            else
-              if p'y-r < -1
-                then (-2-p'y+(2*r),True)
-                else (p'y,False)
+        (p'x',fdx)
+          | p'x+r >  1 = (2-p'x-(2*r),True)
+          | p'x-r < -1 = (-2-p'x+(2*r),True)
+          | otherwise  = (p'x,False)
+        (p'y',fdy)
+          | p'y+r >  1 = (2-p'y-(2*r),True)
+          | p'y-r < -1 = (-2-p'y+(2*r),True)
+          | otherwise  = (p'y,False)
         p'' = Vector.V (realToFrac p'x') (realToFrac p'y')
         d'' = Vector.V
                (if fdx then negate dx else dx)
