diff --git a/simplest-sqlite.cabal b/simplest-sqlite.cabal
--- a/simplest-sqlite.cabal
+++ b/simplest-sqlite.cabal
@@ -2,7 +2,7 @@
 cabal-version: >= 1.8
 
 name: simplest-sqlite
-version: 0.0.0.13
+version: 0.0.0.14
 stability: Experimental
 author: YoshikuniJujo <PAF01143@nifty.ne.jp>
 maintainer: YoshikuniJujo <PAF01143@nifty.ne.jp>
@@ -23,7 +23,7 @@
 source-repository this
     type: git
     location: git://github.com/YoshikuniJujo/test_haskell
-    tag: simplest-sqlite-0.0.0.13
+    tag: simplest-sqlite-0.0.0.14
 
 library
     hs-source-dirs: src
@@ -34,6 +34,6 @@
     build-depends:
         base == 4.*, bytestring == 0.10.*, text >= 1.1 && < 1.3,
         exception-hierarchy == 0.0.0.*, template-haskell >= 2.9 && < 2.11
-    ghc-options: -Wall
+    ghc-options: -Wall -fno-warn-tabs
     extra-libraries: sqlite3
     extensions: ForeignFunctionInterface
diff --git a/src/Database/SmplstSQLite3.hs b/src/Database/SmplstSQLite3.hs
--- a/src/Database/SmplstSQLite3.hs
+++ b/src/Database/SmplstSQLite3.hs
@@ -53,7 +53,8 @@
 		sqliteThrow ("Cannot close database: " ++ em) ret
 
 sqlite3Errmsg :: SQLite -> IO String
-sqlite3Errmsg (SQLite db) = peekCString =<< c_sqlite3_errmsg db
+sqlite3Errmsg (SQLite db) =
+	peekCString' "Error Message" =<< c_sqlite3_errmsg db
 
 foreign import ccall unsafe "sqlite3.h sqlite3_prepare_v2"
 	c_sqlite3_prepare_v2 ::
@@ -76,7 +77,7 @@
 			em <- sqlite3Errmsg db
 			sqlite3Finalize sm
 			sqliteThrow ("Cannot prepare: " ++ em) ret
-		(sm ,) <$> (peekCString =<< peek pt)
+		(sm ,) <$> (peekCString' "Unused SQL" =<< peek pt)
 
 sqlite3Finalize :: Stmt -> IO ()
 sqlite3Finalize (Stmt psm) = do
@@ -133,18 +134,28 @@
 
 instance SQLiteDataList Char where
 	bindNList = sqlite3BindString
-	columnList (Stmt sm) i =
-		peekCString =<< c_sqlite3_column_text sm (fromIntegral i)
+	columnList (Stmt sm) i = peekCString' "String column"
+		=<< c_sqlite3_column_text sm (fromIntegral i)
 
 instance SQLiteData BS.ByteString where
 	bindN = sqlite3BindBlob
-	column (Stmt sm) i =
-		BS.packCString =<< c_sqlite3_column_blob sm (fromIntegral i)
+	column (Stmt sm) i = packCString' "ByteString column"
+		=<< c_sqlite3_column_blob sm (fromIntegral i)
 
 instance SQLiteData T.Text where
 	bindN sm i = sqlite3BindByteString sm i . T.encodeUtf8
-	column (Stmt sm) i = T.decodeUtf8 <$>
-		(BS.packCString =<< c_sqlite3_column_text sm (fromIntegral i))
+	column (Stmt sm) i = (T.decodeUtf8 <$>) .  packCString' "Text column"
+		=<< c_sqlite3_column_text sm (fromIntegral i)
+
+peekCString' :: String -> CString -> IO String
+peekCString' em cstr
+	| cstr == nullPtr = nullPointerException em
+	| otherwise = peekCString cstr
+
+packCString' :: String -> CString -> IO BS.ByteString
+packCString' em cstr
+	| cstr == nullPtr = nullPointerException em
+	| otherwise = BS.packCString cstr
 
 foreign import ccall unsafe "sqlite3.h sqlite3_bind_null"
 	c_sqlite3_bind_null :: Ptr Stmt -> CInt -> IO CInt
diff --git a/src/Database/SmplstSQLite3/Constants.hsc b/src/Database/SmplstSQLite3/Constants.hsc
--- a/src/Database/SmplstSQLite3/Constants.hsc
+++ b/src/Database/SmplstSQLite3/Constants.hsc
@@ -63,6 +63,7 @@
 	) where
 
 import Foreign.C.Types
+import Data.Bits
 
 sQLITE_OK, sQLITE_ROW, sQLITE_DONE :: CInt
 sQLITE_OK = #const SQLITE_OK
@@ -98,7 +99,8 @@
 sQLITE_READONLY_RECOVERY = #const SQLITE_READONLY_RECOVERY
 sQLITE_READONLY_CANTLOCK = #const SQLITE_READONLY_CANTLOCK
 sQLITE_READONLY_ROLLBACK = #const SQLITE_READONLY_ROLLBACK
-sQLITE_READONLY_DBMOVED = #const SQLITE_READONLY_DBMOVED
+-- sQLITE_READONLY_DBMOVED = #const SQLITE_READONLY_DBMOVED
+sQLITE_READONLY_DBMOVED = sQLITE_READONLY_PLAIN .|. 4 `shiftL` 8
 
 sQLITE_INTERRUPT :: CInt
 sQLITE_INTERRUPT = #const SQLITE_INTERRUPT
@@ -191,7 +193,8 @@
 
 sQLITE_AUTH_PLAIN, sQLITE_AUTH_USER :: CInt
 sQLITE_AUTH_PLAIN = #const SQLITE_AUTH
-sQLITE_AUTH_USER = #const SQLITE_AUTH_USER
+-- sQLITE_AUTH_USER = #const SQLITE_AUTH_USER
+sQLITE_AUTH_USER = sQLITE_AUTH_PLAIN .|. 1 `shiftL` 8
 
 sQLITE_FORMAT, sQLITE_RANGE, sQLITE_NOTADB :: CInt
 sQLITE_FORMAT = #const SQLITE_FORMAT
diff --git a/src/Database/SmplstSQLite3/Exception.hs b/src/Database/SmplstSQLite3/Exception.hs
--- a/src/Database/SmplstSQLite3/Exception.hs
+++ b/src/Database/SmplstSQLite3/Exception.hs
@@ -113,6 +113,9 @@
 
 	SQLITE_BIND_ERROR(..),
 	SQLITE_ERROR_OTHER(..),
+	
+	NullPointerException(..),
+	nullPointerException
 	) where
 
 import Database.SmplstSQLite3.Exception.Internal
diff --git a/src/Database/SmplstSQLite3/Exception/Internal.hs b/src/Database/SmplstSQLite3/Exception/Internal.hs
--- a/src/Database/SmplstSQLite3/Exception/Internal.hs
+++ b/src/Database/SmplstSQLite3/Exception/Internal.hs
@@ -116,7 +116,11 @@
 	SQLITE_WARNING_AUTOINDEX(..),
 
 	SQLITE_BIND_ERROR(..),
-	SQLITE_ERROR_OTHER(..) ) where
+	SQLITE_ERROR_OTHER(..),
+	
+	NullPointerException(..),
+	nullPointerException
+	) where
 
 import Control.Exception
 import Control.Exception.Hierarchy
@@ -443,3 +447,11 @@
 
 sqliteThrowBindError :: String -> IO a
 sqliteThrowBindError em = throw $ SQLITE_BIND_ERROR em
+
+newtype NullPointerException = NullPointerException String
+	deriving (Typeable, Show)
+
+exceptionHierarchy Nothing (ExType ''NullPointerException)
+
+nullPointerException :: String -> IO a
+nullPointerException em = throwIO $ NullPointerException em
