diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -4,4 +4,4 @@
 
 
 main :: IO ()
-main = defaultMainWithHooks defaultUserHooks
+main = defaultMainWithHooks simpleUserHooks
diff --git a/sqlite.cabal b/sqlite.cabal
--- a/sqlite.cabal
+++ b/sqlite.cabal
@@ -1,5 +1,5 @@
 Name:            sqlite
-Version:         0.5.3
+Version:         0.5.5
 Synopsis:        Haskell binding to sqlite3
 Description:
     Haskell binding to sqlite3 <http://sqlite.org/>.
@@ -10,8 +10,9 @@
 Maintainer:      Adam Wick <awick@uhsure.com>
 Copyright:
   Copyright (c) 2007-8, Galois Inc
+Homepage:        http://github.com/GaloisInc/sqlite
 Category:        Database
-cabal-version: >= 1.6
+cabal-version: >= 1.8
 build-type:      Configure
 
 -- Cheating here, including the tests/ .cabal +
@@ -20,10 +21,6 @@
   README configure
   include/sqlite3-local.h include/sqlite3.h
   sqlite.buildinfo.unix sqlite.buildinfo.win32
-  tests/configure tests/Main.hs tests/Setup.hs
-  tests/sqlite-tests.cabal
-  tests/test.db tests/sqlite-tests.buildinfo.unix
-  tests/sqlite-tests.buildinfo.win32
 extra-tmp-files:
   sqlite.buildinfo
 
@@ -36,9 +33,9 @@
                    directory
   Extensions:      ForeignFunctionInterface, GeneralizedNewtypeDeriving,
                    TypeSynonymInstances, ScopedTypeVariables,
-                   FlexibleInstances, UndecidableInstances, OverlappingInstances, IncoherentInstances
+                   FlexibleInstances, UndecidableInstances, IncoherentInstances
   Ghc-options:     -Wall
-  Cc-options:      -Wall -DSQLITE_ENABLE_FTS3=1 -O3 -DNDEBUG=1
+  Cc-options:      -Wall -DSQLITE_ENABLE_FTS3=1 -DNDEBUG=1
   Include-dirs:    include
   Includes:        sqlite3-local.h
   C-Sources:       cbits/sqlite3-local.c
@@ -56,6 +53,12 @@
     Database.SQLite.Types,
     Database.SQL
     Database.SQL.Types
+
+test-suite sqlite-tests
+  Type:            exitcode-stdio-1.0
+  Build-depends:   base, sqlite
+  Main-is:         Main.hs
+  hs-source-dirs:  tests/
 
 source-repository head
   type:     git
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -1,12 +1,15 @@
 module Main where
 
 import Database.SQLite
+import System.IO.Error (catchIOError)
 
+catch = catchIOError
+
 newTable :: TableName -> Table SQLType
-newTable tName = 
+newTable tName =
   VirtualTable
         { tabName    = tName
-        , tabColumns = 
+        , tabColumns =
 	    [ Column { colName    = "id"
 	             , colType    = SQLInt NORMAL False False
 		     , colClauses = [PrimaryKey True]
@@ -26,9 +29,9 @@
 
 main :: IO ()
 main = do
-  let dbFile = "test.db"
-  let ign act = 
-        catch (act >> return ()) 
+  let dbFile = "tests/test.db"
+  let ign act =
+        catch (act >> return ())
               (\ err -> putStrLn ("Error (but ignoring) -- " ++ show err) >> return ())
   h <- openConnection dbFile
   ign $ defineTable h (newTable "names")
diff --git a/tests/Setup.hs b/tests/Setup.hs
deleted file mode 100644
--- a/tests/Setup.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-module Main where
-
-import Distribution.Simple
-
-
-main :: IO ()
-main = defaultMainWithHooks defaultUserHooks
diff --git a/tests/configure b/tests/configure
deleted file mode 100644
--- a/tests/configure
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-#
-#
-UNAME=uname
-case `${UNAME} -a` in
-  *MINGW* | *CYGWIN* )
-  	  echo "Windows platform... using .buildinfo.win32"
-  	  cp sqlite-tests.buildinfo.win32 sqlite-tests.buildinfo
-	  ;;
-  *)
-  	  echo "UNIXy platform... using .buildinfo.unix"
-  	  cp sqlite-tests.buildinfo.unix sqlite-tests.buildinfo
-	  ;;
-esac
-
diff --git a/tests/sqlite-tests.buildinfo.unix b/tests/sqlite-tests.buildinfo.unix
deleted file mode 100644
--- a/tests/sqlite-tests.buildinfo.unix
+++ /dev/null
@@ -1,1 +0,0 @@
-ghc-options:       -L/usr/lib
diff --git a/tests/sqlite-tests.buildinfo.win32 b/tests/sqlite-tests.buildinfo.win32
deleted file mode 100644
--- a/tests/sqlite-tests.buildinfo.win32
+++ /dev/null
@@ -1,1 +0,0 @@
-ghc-options: -Lc:/src/sqlite-3.5.1/ 
diff --git a/tests/sqlite-tests.cabal b/tests/sqlite-tests.cabal
deleted file mode 100644
--- a/tests/sqlite-tests.cabal
+++ /dev/null
@@ -1,20 +0,0 @@
-name:           sqlite-tests
-cabal-version:  >= 1.2.0
-version:        0.1
-
-flag new-base {
-  description: Build with new smaller base library
-  default: False
-}
-
-executable sqlite-test {
-  build-depends:        base, sqlite
-  if flag(new-base) {
-    build-depends: base >= 2.1
-  } else {
-    build-depends: base == 2.0 || == 2.1.1
-  }
-
-  main-is:              Main.hs
-  ghc-options:          -Wall -fglasgow-exts
-}
diff --git a/tests/test.db b/tests/test.db
deleted file mode 100644
Binary files a/tests/test.db and /dev/null differ
