diff --git a/Database/HaskellDB/HSQL/ODBC.hs b/Database/HaskellDB/HSQL/ODBC.hs
new file mode 100644
--- /dev/null
+++ b/Database/HaskellDB/HSQL/ODBC.hs
@@ -0,0 +1,55 @@
+-----------------------------------------------------------
+-- |
+-- Module      :  Database.HaskellDB.HSQL.ODBC
+-- Copyright   :  HWT Group 2003,
+--                Bjorn Bringert 2006
+-- License     :  BSD-style
+-- 
+-- Maintainer  :  haskelldb-users@lists.sourceforge.net
+-- Stability   :  experimental
+-- Portability :  non-portable
+--
+-----------------------------------------------------------
+
+module Database.HaskellDB.HSQL.ODBC (
+		                     ODBCOptions(..),
+		                     odbcConnect, 
+                                     odbcDriverConnect,
+                                     DriverInterface(..),
+		                     driver
+		                    ) where
+
+import Database.HaskellDB.Database
+import Database.HaskellDB.HSQL
+import Database.HaskellDB.DriverAPI
+import Database.HaskellDB.Sql.Generate (SqlGenerator)
+import qualified Database.HSQL.ODBC as ODBC (connect, driverConnect) 
+
+data ODBCOptions = ODBCOptions { 
+                               dsn :: String, -- ^ name binding in ODBC
+                               uid :: String, -- ^ user id
+                               pwd :: String  -- ^ password
+                  	       }          
+
+odbcConnect :: MonadIO m => SqlGenerator -> ODBCOptions -> (Database -> m a) -> m a
+odbcConnect gen opts = 
+    hsqlConnect gen (ODBC.connect (dsn opts) (uid opts) (pwd opts))
+
+-- | DSN-less connection.
+odbcDriverConnect :: MonadIO m => SqlGenerator -> String -> (Database -> m a) -> m a
+odbcDriverConnect gen opts =
+    hsqlConnect gen (ODBC.driverConnect opts)
+
+odbcConnectOpts :: MonadIO m => [(String,String)] -> (Database -> m a) -> m a
+odbcConnectOpts opts f = 
+    do
+    [a,b,c] <- getOptions ["dsn","uid","pwd"] opts
+    g <- getGenerator opts
+    odbcConnect g (ODBCOptions {dsn = a,
+                                uid = b,
+			        pwd = c}) f
+
+-- | This driver requires the following options: 
+--   "dsn", "uid", "pwd"
+driver :: DriverInterface
+driver = defaultdriver { connect = odbcConnectOpts }
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-odbc.cabal b/haskelldb-hsql-odbc.cabal
new file mode 100644
--- /dev/null
+++ b/haskelldb-hsql-odbc.cabal
@@ -0,0 +1,15 @@
+Name: haskelldb-hsql-odbc
+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-odbc
+Extensions: ExistentialQuantification,
+            OverlappingInstances,
+            UndecidableInstances,
+            MultiParamTypeClasses
+Synopsis: HaskellDB support for the HSQL ODBC driver.
+Exposed-Modules:
+        Database.HaskellDB.HSQL.ODBC
+ghc-options: -O2
