diff --git a/MacroMacros.hs b/MacroMacros.hs
new file mode 100644
--- /dev/null
+++ b/MacroMacros.hs
@@ -0,0 +1,38 @@
+
+{-| Macros for macros. 
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -}
+
+{-# LANGUAGE TemplateHaskell
+  #-}
+
+module MacroMacros where
+
+
+import Control.Applicative
+import Language.Haskell.TH
+import Language.Haskell.TH.Syntax
+
+
+
+presentFile                  =  recover newTH oldTH
+ where
+  oldTH                      =  do
+    reify name 
+    return $ InfixE
+      (Just $ VarE $ mkName "fileName")
+      (VarE $ mkName "<$>")
+      (Just $ VarE name)
+   where
+    name                     =  mkName "currentModule"
+  newTH                      =  do 
+    return $ InfixE
+      (Just $ VarE $ mkName "loc_filename")
+      (VarE $ mkName "<$>")
+      (Just $ VarE $ mkName "location")
+
+
+fileName mod                 =  map replace mod ++ ".hs"
+ where
+  replace '.'                =  '/'
+  replace c                  =  c
+
diff --git a/Macros.hs b/Macros.hs
--- a/Macros.hs
+++ b/Macros.hs
@@ -9,9 +9,12 @@
 module Macros where
 
 
+import MacroMacros
+
 import Language.Haskell.TH
 import Language.Haskell.TH.Syntax
 import Data.List
+import Control.Applicative
 import Text.Regex
 
 
@@ -23,9 +26,9 @@
 {-| Extract the usage from the module we're in and put it here.
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -}
 usage                        =  lift =<< do
-  mod                       <-  currentModule
+  p                         <-  $(presentFile)
   runIO $ do
-    s                       <-  readFile $ fileName mod
+    s                       <-  readFile p
     return $ extractUsage s 
  where
   fileName mod               =  map replace mod ++ ".hs"
@@ -45,10 +48,9 @@
   r <//> s                   =  matchRegex (mkRegexWithOpts r False True) s
   regex = ".*\\{-([\t -]*\n)+([ \t]+(SYNOPSIS|USAGE))(.+)\n[-\t ]*-\\}"
 
+
  -- normalizeLeadingEmptyLines
 normalizeLeadingEmpties      =  ('\n':) . dropWhile (`elem` "\n \t")
 normalizeEmptyLines''        =  reverse . normalizeLeadingEmpties . reverse
-
-
 
 
diff --git a/system-uuid.cabal b/system-uuid.cabal
--- a/system-uuid.cabal
+++ b/system-uuid.cabal
@@ -1,5 +1,5 @@
 name                          : system-uuid
-version                       : 0.0.0
+version                       : 0.0.1
 category                      : System
 license                       : BSD3
 license-file                  : LICENSE
@@ -8,7 +8,8 @@
 homepage                      : http://github.com/jsnx/system-uuid/
 synopsis                      : Bindings to system UUID functions.
 description                   :
-  Bindings to the native UUID generator for a number of platforms.
+  Bindings to the native UUID generator for a number of platforms. Please
+  contact the author if your platform is not supported.
 
 
 cabal-version                 : >= 1.2
@@ -17,6 +18,7 @@
                                 CONTRIBUTORS
                                 Options.hs
                                 Macros.hs
+                                MacroMacros.hs
                                 Messages.hs
 
 
