diff --git a/Database/HaskellDB/HSQL/SQLite3.hs b/Database/HaskellDB/HSQL/SQLite3.hs
new file mode 100644
--- /dev/null
+++ b/Database/HaskellDB/HSQL/SQLite3.hs
@@ -0,0 +1,60 @@
+-----------------------------------------------------------
+-- |
+-- Module      :  Database.HaskellDB.HSQL.SQLite3
+-- Copyright   :  HWT Group 2003,
+--                Bjorn Bringert 2006
+-- License     :  BSD-style
+-- 
+-- Maintainer  :  haskelldb-users@lists.sourceforge.net
+-- Stability   :  experimental
+-- Portability :  non-portable
+--
+-- Interface to SQLite 3 <http://www.hwaci.com/sw/sqlite/>
+-- databases.
+--
+-----------------------------------------------------------
+module Database.HaskellDB.HSQL.SQLite3 (
+		   SQLiteOptions(..), sqliteConnect,
+		   DriverInterface(..), driver
+		  ) where
+
+import Database.HaskellDB.Database
+import Database.HaskellDB.HSQL
+import Database.HaskellDB.DriverAPI
+import Database.HaskellDB.Sql.SQLite as SQLite
+import qualified Database.HSQL.SQLite3 as SQLite3 (connect) 
+import System.IO
+
+data SQLiteOptions = SQLiteOptions { 
+				    filepath :: FilePath, -- ^ database file
+				    mode :: IOMode        -- ^ access mode
+                  		   }
+
+sqliteConnect :: MonadIO m => SQLiteOptions -> (Database -> m a) -> m a
+sqliteConnect opts = 
+    hsqlConnect SQLite.generator (SQLite3.connect (filepath opts) (mode opts))
+
+sqliteConnectOpts :: MonadIO m => [(String,String)] -> (Database -> m a) -> m a
+sqliteConnectOpts opts f = 
+    do
+    [a,b] <- getOptions ["filepath","mode"] opts
+    m <- readIOMode b
+    sqliteConnect (SQLiteOptions {filepath = a,
+				  mode = m}) f
+
+readIOMode :: Monad m => String -> m IOMode
+readIOMode s = 
+    case s of
+           "r" -> return ReadMode
+           "w" -> return WriteMode
+           "a" -> return AppendMode
+           "rw" -> return ReadWriteMode
+           _ -> case reads s of
+                             [(x,"")] -> return x
+                             _ -> fail $ "Bad IO mode: " ++ s
+
+-- | This driver requires the following options: 
+--   "filepath", "mode"
+-- The possible values of the "mode" option are "r", "w", "rw"
+driver :: DriverInterface
+driver = defaultdriver {connect = sqliteConnectOpts}
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,4 @@
+#!/usr/bin/env runghc
+
+import Distribution.Simple
+main = defaultMain
diff --git a/haskelldb-hsql-sqlite3.cabal b/haskelldb-hsql-sqlite3.cabal
new file mode 100644
--- /dev/null
+++ b/haskelldb-hsql-sqlite3.cabal
@@ -0,0 +1,15 @@
+Name: haskelldb-hsql-sqlite3
+Version: 0.10
+Copyright: The authors
+Maintainer: haskelldb-users@lists.sourceforge.net
+Author: Daan Leijen, Conny Andersson, Martin Andersson, Mary Bergman, Victor Blomqvist, Bjorn Bringert, Anders Hockersten, Torbjorn Martin, Jeremy Shaw
+License: BSD3
+build-depends: haskell98, base, mtl, haskelldb, haskelldb-hsql, hsql, hsql-sqlite3
+Extensions: ExistentialQuantification,
+            OverlappingInstances,
+            UndecidableInstances,
+            MultiParamTypeClasses
+Synopsis: HaskellDB support for the HSQL SQLite driver.
+Exposed-Modules:
+        Database.HaskellDB.HSQL.SQLite3
+ghc-options: -O2
