diff --git a/Codec/Archive/Tar/Write.hs b/Codec/Archive/Tar/Write.hs
--- a/Codec/Archive/Tar/Write.hs
+++ b/Codec/Archive/Tar/Write.hs
@@ -99,7 +99,7 @@
                    fill (n - length s) '\NUL'
 
 putOct :: Integral a => Int -> a -> Put
-putOct n x = do let o = take n $ showOct x ""
+putOct n x = do let o = take (n-1) $ showOct x ""
                 fill (n - length o - 1) '0'
                 mapM_ putChar8 o
                 putChar8 '\NUL'
diff --git a/tar.cabal b/tar.cabal
--- a/tar.cabal
+++ b/tar.cabal
@@ -1,6 +1,6 @@
 Name: tar
-Version: 0.1.1.1
-License: BSD4
+Version: 0.1.1.3
+License: BSD3
 License-File: LICENSE
 Author: Bjorn Bringert <bjorn@bringert.net>
 Maintainer: Bjorn Bringert <bjorn@bringert.net>
@@ -21,10 +21,10 @@
     Build-depends: base >= 2.0 && < 2.2
   else
     -- in base 1.0 and 3.0 bytestring is a separate package
-    Build-depends: base < 2.0 || >= 3, bytestring >= 0.9
+    Build-depends: base < 2.0 || == 3.*, bytestring >= 0.9
 
   if flag(split-base)
-    Build-depends:   base >= 3.0, directory, old-time
+    Build-depends:   base == 3.*, directory, old-time
   else
     Build-depends:   base < 3.0
 
