upgrade to final version of pysqlite 2.2.0
diff --git a/Modules/_sqlite/cache.c b/Modules/_sqlite/cache.c
index d36b52b..d102e97 100644
--- a/Modules/_sqlite/cache.c
+++ b/Modules/_sqlite/cache.c
@@ -262,7 +262,7 @@
 PyTypeObject NodeType = {
         PyObject_HEAD_INIT(NULL)
         0,                                              /* ob_size */
-        "pysqlite2.dbapi2.Node",                        /* tp_name */
+        MODULE_NAME "Node",                             /* tp_name */
         sizeof(Node),                                   /* tp_basicsize */
         0,                                              /* tp_itemsize */
         (destructor)node_dealloc,                       /* tp_dealloc */
@@ -305,7 +305,7 @@
 PyTypeObject CacheType = {
         PyObject_HEAD_INIT(NULL)
         0,                                              /* ob_size */
-        "pysqlite2.dbapi2.Cache",                       /* tp_name */
+        MODULE_NAME ".Cache",                           /* tp_name */
         sizeof(Cache),                                  /* tp_basicsize */
         0,                                              /* tp_itemsize */
         (destructor)cache_dealloc,                      /* tp_dealloc */
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 3e97f6e..0f68160 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -1029,7 +1029,7 @@
 PyTypeObject ConnectionType = {
         PyObject_HEAD_INIT(NULL)
         0,                                              /* ob_size */
-        "pysqlite2.dbapi2.Connection",                  /* tp_name */
+        MODULE_NAME ".Connection",                      /* tp_name */
         sizeof(Connection),                             /* tp_basicsize */
         0,                                              /* tp_itemsize */
         (destructor)connection_dealloc,                 /* tp_dealloc */
diff --git a/Modules/_sqlite/cursor.c b/Modules/_sqlite/cursor.c
index 7f378d6..d2b45a0 100644
--- a/Modules/_sqlite/cursor.c
+++ b/Modules/_sqlite/cursor.c
@@ -977,7 +977,7 @@
 PyTypeObject CursorType = {
         PyObject_HEAD_INIT(NULL)
         0,                                              /* ob_size */
-        "pysqlite2.dbapi2.Cursor",                      /* tp_name */
+        MODULE_NAME ".Cursor",                          /* tp_name */
         sizeof(Cursor),                                 /* tp_basicsize */
         0,                                              /* tp_itemsize */
         (destructor)cursor_dealloc,                     /* tp_dealloc */
diff --git a/Modules/_sqlite/microprotocols.c b/Modules/_sqlite/microprotocols.c
index 5040acd..4956ac0 100644
--- a/Modules/_sqlite/microprotocols.c
+++ b/Modules/_sqlite/microprotocols.c
@@ -55,28 +55,19 @@
 microprotocols_add(PyTypeObject *type, PyObject *proto, PyObject *cast)
 {
     PyObject* key;
+    int rc;
 
     if (proto == NULL) proto = (PyObject*)&SQLitePrepareProtocolType;
 
-    /*
-    Dprintf("microprotocols_add: cast %p for (%s, ?)",
-            cast, type->tp_name);
-    */
-
-
     key = Py_BuildValue("(OO)", (PyObject*)type, proto);
     if (!key) {
         return -1;
     }
 
-    if (PyDict_SetItem(psyco_adapters, key, cast) != 0) {
-        Py_DECREF(key);
-        return -1;
-    }
-
+    rc = PyDict_SetItem(psyco_adapters, key, cast);
     Py_DECREF(key);
 
-    return 0;
+    return rc;
 }
 
 /* microprotocols_adapt - adapt an object to the built-in protocol */
diff --git a/Modules/_sqlite/module.c b/Modules/_sqlite/module.c
index 60d0d63..1537e79 100644
--- a/Modules/_sqlite/module.c
+++ b/Modules/_sqlite/module.c
@@ -214,56 +214,56 @@
 
     /*** Create DB-API Exception hierarchy */
 
-    if (!(Error = PyErr_NewException("sqlite3.Error", PyExc_StandardError, NULL))) {
+    if (!(Error = PyErr_NewException(MODULE_NAME ".Error", PyExc_StandardError, NULL))) {
         goto error;
     }
     PyDict_SetItemString(dict, "Error", Error);
 
-    if (!(Warning = PyErr_NewException("sqlite3.Warning", PyExc_StandardError, NULL))) {
+    if (!(Warning = PyErr_NewException(MODULE_NAME ".Warning", PyExc_StandardError, NULL))) {
         goto error;
     }
     PyDict_SetItemString(dict, "Warning", Warning);
 
     /* Error subclasses */
 
-    if (!(InterfaceError = PyErr_NewException("sqlite3.InterfaceError", Error, NULL))) {
+    if (!(InterfaceError = PyErr_NewException(MODULE_NAME ".InterfaceError", Error, NULL))) {
         goto error;
     }
     PyDict_SetItemString(dict, "InterfaceError", InterfaceError);
 
-    if (!(DatabaseError = PyErr_NewException("sqlite3.DatabaseError", Error, NULL))) {
+    if (!(DatabaseError = PyErr_NewException(MODULE_NAME ".DatabaseError", Error, NULL))) {
         goto error;
     }
     PyDict_SetItemString(dict, "DatabaseError", DatabaseError);
 
     /* DatabaseError subclasses */
 
-    if (!(InternalError = PyErr_NewException("sqlite3.InternalError", DatabaseError, NULL))) {
+    if (!(InternalError = PyErr_NewException(MODULE_NAME ".InternalError", DatabaseError, NULL))) {
         goto error;
     }
     PyDict_SetItemString(dict, "InternalError", InternalError);
 
-    if (!(OperationalError = PyErr_NewException("sqlite3.OperationalError", DatabaseError, NULL))) {
+    if (!(OperationalError = PyErr_NewException(MODULE_NAME ".OperationalError", DatabaseError, NULL))) {
         goto error;
     }
     PyDict_SetItemString(dict, "OperationalError", OperationalError);
 
-    if (!(ProgrammingError = PyErr_NewException("sqlite3.ProgrammingError", DatabaseError, NULL))) {
+    if (!(ProgrammingError = PyErr_NewException(MODULE_NAME ".ProgrammingError", DatabaseError, NULL))) {
         goto error;
     }
     PyDict_SetItemString(dict, "ProgrammingError", ProgrammingError);
 
-    if (!(IntegrityError = PyErr_NewException("sqlite3.IntegrityError", DatabaseError,NULL))) {
+    if (!(IntegrityError = PyErr_NewException(MODULE_NAME ".IntegrityError", DatabaseError,NULL))) {
         goto error;
     }
     PyDict_SetItemString(dict, "IntegrityError", IntegrityError);
 
-    if (!(DataError = PyErr_NewException("sqlite3.DataError", DatabaseError, NULL))) {
+    if (!(DataError = PyErr_NewException(MODULE_NAME ".DataError", DatabaseError, NULL))) {
         goto error;
     }
     PyDict_SetItemString(dict, "DataError", DataError);
 
-    if (!(NotSupportedError = PyErr_NewException("sqlite3.NotSupportedError", DatabaseError, NULL))) {
+    if (!(NotSupportedError = PyErr_NewException(MODULE_NAME ".NotSupportedError", DatabaseError, NULL))) {
         goto error;
     }
     PyDict_SetItemString(dict, "NotSupportedError", NotSupportedError);
@@ -320,6 +320,6 @@
 error:
     if (PyErr_Occurred())
     {
-        PyErr_SetString(PyExc_ImportError, "_sqlite3: init failed");
+        PyErr_SetString(PyExc_ImportError, MODULE_NAME ": init failed");
     }
 }
diff --git a/Modules/_sqlite/module.h b/Modules/_sqlite/module.h
index 75fe29d..6694735 100644
--- a/Modules/_sqlite/module.h
+++ b/Modules/_sqlite/module.h
@@ -25,6 +25,8 @@
 #define PYSQLITE_MODULE_H
 #include "Python.h"
 
+#define PYSQLITE_VERSION "2.2.0"
+
 extern PyObject* Error;
 extern PyObject* Warning;
 extern PyObject* InterfaceError;
diff --git a/Modules/_sqlite/prepare_protocol.c b/Modules/_sqlite/prepare_protocol.c
index 522f1d1..26b663b 100644
--- a/Modules/_sqlite/prepare_protocol.c
+++ b/Modules/_sqlite/prepare_protocol.c
@@ -36,7 +36,7 @@
 PyTypeObject SQLitePrepareProtocolType= {
         PyObject_HEAD_INIT(NULL)
         0,                                              /* ob_size */
-        "pysqlite2.dbapi2.PrepareProtocol",             /* tp_name */
+        MODULE_NAME ".PrepareProtocol",                 /* tp_name */
         sizeof(SQLitePrepareProtocol),                  /* tp_basicsize */
         0,                                              /* tp_itemsize */
         (destructor)prepare_protocol_dealloc,           /* tp_dealloc */
diff --git a/Modules/_sqlite/row.c b/Modules/_sqlite/row.c
index 77c7896..80b6135 100644
--- a/Modules/_sqlite/row.c
+++ b/Modules/_sqlite/row.c
@@ -154,7 +154,7 @@
 PyTypeObject RowType = {
         PyObject_HEAD_INIT(NULL)
         0,                                              /* ob_size */
-        "pysqlite2.dbapi2.Row",                         /* tp_name */
+        MODULE_NAME ".Row",                             /* tp_name */
         sizeof(Row),                                    /* tp_basicsize */
         0,                                              /* tp_itemsize */
         (destructor)row_dealloc,                        /* tp_dealloc */
diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c
index ae48b4b..a8a9cf5 100644
--- a/Modules/_sqlite/statement.c
+++ b/Modules/_sqlite/statement.c
@@ -381,7 +381,7 @@
 PyTypeObject StatementType = {
         PyObject_HEAD_INIT(NULL)
         0,                                              /* ob_size */
-        "pysqlite2.dbapi2.Statement",                   /* tp_name */
+        MODULE_NAME ".Statement",                       /* tp_name */
         sizeof(Statement),                              /* tp_basicsize */
         0,                                              /* tp_itemsize */
         (destructor)statement_dealloc,                  /* tp_dealloc */