diff --git a/System/OSX/FSEvents.hs b/System/OSX/FSEvents.hs
--- a/System/OSX/FSEvents.hs
+++ b/System/OSX/FSEvents.hs
@@ -16,6 +16,8 @@
   , eventFlagItemRenamed, eventFlagItemModified, eventFlagItemFinderInfoMod
   , eventFlagItemChangeOwner, eventFlagItemXattrMod
   , eventFlagItemIsFile, eventFlagItemIsDir, eventFlagItemIsSymlink
+  -- query api support
+  , fileLevelEventsSupported, osVersion
   ) where
 
 import Control.Concurrent
@@ -25,6 +27,7 @@
 import Data.Bits
 import Data.Serialize.Get
 import Data.Word
+import Data.Int
 import Foreign.C.String
 import Foreign.C.Types
 import Foreign.Marshal.Alloc
@@ -170,6 +173,18 @@
       stop = hClose h >> return ()
       readHeader = liftM3 (,,) getWord64host getWord64host getWord64host
 
+osVersion :: IO (Integer, Integer, Integer)
+osVersion = alloca $ \major -> do
+            alloca $ \minor -> do
+            alloca $ \bugfix -> do
+              c_osVersion major minor bugfix
+              liftM3 (,,) (peekfi major) (peekfi minor) (peekfi bugfix)
+  where
+    peekfi = fmap fromIntegral . peek
+
+fileLevelEventsSupported :: IO Bool
+fileLevelEventsSupported = fmap (>= (10,7,0)) osVersion
+
 foreign import ccall safe "c_fsevents.h createWatch" c_createWatch :: Ptr (Ptr CChar)
                                                                    -> CInt
                                                                    -> Word32
@@ -181,4 +196,8 @@
 
 foreign import ccall safe "c_fsevents.h destroyWatch" c_destroyWatch :: Ptr CWatch
                                                                      -> IO ()
+foreign import ccall safe "c_fsevents.h osVersion" c_osVersion :: Ptr Int32
+                                                               -> Ptr Int32
+                                                               -> Ptr Int32
+                                                               -> IO ()
 
diff --git a/cbits/c_fsevents.c b/cbits/c_fsevents.c
--- a/cbits/c_fsevents.c
+++ b/cbits/c_fsevents.c
@@ -96,3 +96,8 @@
   free(w);
 }
 
+void osVersion(SInt32 *majorVersion, SInt32 *minorVersion, SInt32 *bugFixVersion) {
+   Gestalt(gestaltSystemVersionMajor, majorVersion);
+   Gestalt(gestaltSystemVersionMinor, minorVersion);
+   Gestalt(gestaltSystemVersionBugFix, bugFixVersion);
+}
diff --git a/cbits/c_fsevents.h b/cbits/c_fsevents.h
--- a/cbits/c_fsevents.h
+++ b/cbits/c_fsevents.h
@@ -21,5 +21,9 @@
 
 int destroyWatch(watch* w);
 
+void osVersion( SInt32 *majorVersion
+              , SInt32 *minorVersion
+	      , SInt32 *bugFixVersion);
+
 #endif
 
diff --git a/hfsevents.cabal b/hfsevents.cabal
--- a/hfsevents.cabal
+++ b/hfsevents.cabal
@@ -1,5 +1,5 @@
 name:                hfsevents
-version:             0.1.1
+version:             0.1.2
 synopsis:            File/folder watching for OS X
 homepage:            http://github.com/luite/hfsevents
 license:             BSD3
