diff --git a/System/Posix/Directory/Common.hsc b/System/Posix/Directory/Common.hsc
index 86d87caf32d1b3322349f3bfc781b10a5e51ecc3..7cc61afe121a65dfa6e8a02a63797659bf393c92 100644
--- a/System/Posix/Directory/Common.hsc
+++ b/System/Posix/Directory/Common.hsc
@@ -62,20 +62,20 @@ newtype DirStreamOffset = DirStreamOffset COff
 #ifdef HAVE_SEEKDIR
 seekDirStream :: DirStream -> DirStreamOffset -> IO ()
 seekDirStream (DirStream dirp) (DirStreamOffset off) =
-  c_seekdir dirp off
+  c_seekdir dirp (fromIntegral off) -- TODO: check for CLong/COff overflow
 
 foreign import ccall unsafe "seekdir"
-  c_seekdir :: Ptr CDir -> COff -> IO ()
+  c_seekdir :: Ptr CDir -> CLong -> IO ()
 #endif
 
 #ifdef HAVE_TELLDIR
 tellDirStream :: DirStream -> IO DirStreamOffset
 tellDirStream (DirStream dirp) = do
   off <- c_telldir dirp
-  return (DirStreamOffset off)
+  return (DirStreamOffset (fromIntegral off)) -- TODO: check for overflow
 
 foreign import ccall unsafe "telldir"
-  c_telldir :: Ptr CDir -> IO COff
+  c_telldir :: Ptr CDir -> IO CLong
 #endif
 
 changeWorkingDirectoryFd :: Fd -> IO ()
diff --git a/changelog.md b/changelog.md
index ae5b72635767677d50e08cc07ea31b7aa4a148fc..c481922fcc33637136f001c7d6497eb75dc7d718 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 # Changelog for [`unix` package](http://hackage.haskell.org/package/unix)
 
 ## 2.7.0.2  *TBA*
@@ -9,6 +10,7 @@
     CPP macros for required getgrgid_r and getgrnam_r functions definition
     so the fix is to change from C ABI calling convention to C API calling
     convention
+  * Fix potential type-mismatch in `telldir`/`seekdir` FFI imports
 
 ## 2.7.0.1  *Mar 2014*