diff --git a/Misc/NEWS b/Misc/NEWS
index 8e6d83b..aca06f2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -148,6 +148,9 @@
 
 - sqlite3: Changed docstring of iterdump() to mark method as "Non-standard".
 
+- Issue #3103: Reduced globals symbols used by sqlite3 module and made sure all
+  remaining ones have "pysqlite_" prefix.
+
 Tests
 -----
 
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index f98fbd6..9d6952e 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -38,7 +38,7 @@
 static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level);
 
 
-void _sqlite3_result_error(sqlite3_context* ctx, const char* errmsg, int len)
+static void _sqlite3_result_error(sqlite3_context* ctx, const char* errmsg, int len)
 {
     /* in older SQLite versions, calling sqlite3_result_error in callbacks
      * triggers a bug in SQLite that leads either to irritating results or
@@ -363,7 +363,7 @@
         goto error;
     }
 
-    rc = _sqlite_step_with_busyhandler(statement, self);
+    rc = pysqlite_step(statement, self);
     if (rc == SQLITE_DONE) {
         self->inTransaction = 1;
     } else {
@@ -406,7 +406,7 @@
             goto error;
         }
 
-        rc = _sqlite_step_with_busyhandler(statement, self);
+        rc = pysqlite_step(statement, self);
         if (rc == SQLITE_DONE) {
             self->inTransaction = 0;
         } else {
@@ -452,7 +452,7 @@
             goto error;
         }
 
-        rc = _sqlite_step_with_busyhandler(statement, self);
+        rc = pysqlite_step(statement, self);
         if (rc == SQLITE_DONE) {
             self->inTransaction = 0;
         } else {
diff --git a/Modules/_sqlite/cursor.c b/Modules/_sqlite/cursor.c
index 7c0ca4b..1bf27d7 100644
--- a/Modules/_sqlite/cursor.c
+++ b/Modules/_sqlite/cursor.c
@@ -605,7 +605,7 @@
         /* Keep trying the SQL statement until the schema stops changing. */
         while (1) {
             /* Actually execute the SQL statement. */
-            rc = _sqlite_step_with_busyhandler(self->statement->st, self->connection);
+            rc = pysqlite_step(self->statement->st, self->connection);
             if (rc == SQLITE_DONE ||  rc == SQLITE_ROW) {
                 /* If it worked, let's get out of the loop */
                 break;
@@ -803,7 +803,7 @@
         /* execute statement, and ignore results of SELECT statements */
         rc = SQLITE_ROW;
         while (rc == SQLITE_ROW) {
-            rc = _sqlite_step_with_busyhandler(statement, self->connection);
+            rc = pysqlite_step(statement, self->connection);
             /* TODO: we probably need more error handling here */
         }
 
@@ -871,7 +871,7 @@
     }
 
     if (self->statement) {
-        rc = _sqlite_step_with_busyhandler(self->statement->st, self->connection);
+        rc = pysqlite_step(self->statement->st, self->connection);
         if (rc != SQLITE_DONE && rc != SQLITE_ROW) {
             (void)pysqlite_statement_reset(self->statement);
             Py_DECREF(next_row);
diff --git a/Modules/_sqlite/microprotocols.c b/Modules/_sqlite/microprotocols.c
index 5a78917..c730afa 100644
--- a/Modules/_sqlite/microprotocols.c
+++ b/Modules/_sqlite/microprotocols.c
@@ -35,10 +35,10 @@
 
 PyObject *psyco_adapters;
 
-/* microprotocols_init - initialize the adapters dictionary */
+/* pysqlite_microprotocols_init - initialize the adapters dictionary */
 
 int
-microprotocols_init(PyObject *dict)
+pysqlite_microprotocols_init(PyObject *dict)
 {
     /* create adapters dictionary and put it in module namespace */
     if ((psyco_adapters = PyDict_New()) == NULL) {
@@ -49,10 +49,10 @@
 }
 
 
-/* microprotocols_add - add a reverse type-caster to the dictionary */
+/* pysqlite_microprotocols_add - add a reverse type-caster to the dictionary */
 
 int
-microprotocols_add(PyTypeObject *type, PyObject *proto, PyObject *cast)
+pysqlite_microprotocols_add(PyTypeObject *type, PyObject *proto, PyObject *cast)
 {
     PyObject* key;
     int rc;
@@ -70,10 +70,10 @@
     return rc;
 }
 
-/* microprotocols_adapt - adapt an object to the built-in protocol */
+/* pysqlite_microprotocols_adapt - adapt an object to the built-in protocol */
 
 PyObject *
-microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt)
+pysqlite_microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt)
 {
     PyObject *adapter, *key;
 
@@ -132,11 +132,11 @@
 /** module-level functions **/
 
 PyObject *
-psyco_microprotocols_adapt(pysqlite_Cursor *self, PyObject *args)
+pysqlite_adapt(pysqlite_Cursor *self, PyObject *args)
 {
     PyObject *obj, *alt = NULL;
     PyObject *proto = (PyObject*)&pysqlite_PrepareProtocolType;
 
     if (!PyArg_ParseTuple(args, "O|OO", &obj, &proto, &alt)) return NULL;
-    return microprotocols_adapt(obj, proto, alt);
+    return pysqlite_microprotocols_adapt(obj, proto, alt);
 }
diff --git a/Modules/_sqlite/microprotocols.h b/Modules/_sqlite/microprotocols.h
index c911c81..3a9944f 100644
--- a/Modules/_sqlite/microprotocols.h
+++ b/Modules/_sqlite/microprotocols.h
@@ -41,15 +41,15 @@
 /** exported functions **/
 
 /* used by module.c to init the microprotocols system */
-extern int microprotocols_init(PyObject *dict);
-extern int microprotocols_add(
+extern int pysqlite_microprotocols_init(PyObject *dict);
+extern int pysqlite_microprotocols_add(
     PyTypeObject *type, PyObject *proto, PyObject *cast);
-extern PyObject *microprotocols_adapt(
+extern PyObject *pysqlite_microprotocols_adapt(
     PyObject *obj, PyObject *proto, PyObject *alt);
 
 extern PyObject *
-    psyco_microprotocols_adapt(pysqlite_Cursor* self, PyObject *args);   
-#define psyco_microprotocols_adapt_doc \
+    pysqlite_adapt(pysqlite_Cursor* self, PyObject *args);   
+#define pysqlite_adapt_doc \
     "adapt(obj, protocol, alternate) -> adapt obj to given protocol. Non-standard."
 
 #endif /* !defined(PSYCOPG_MICROPROTOCOLS_H) */
diff --git a/Modules/_sqlite/module.c b/Modules/_sqlite/module.c
index 7640e92..cd28609 100644
--- a/Modules/_sqlite/module.c
+++ b/Modules/_sqlite/module.c
@@ -160,7 +160,7 @@
         pysqlite_BaseTypeAdapted = 1;
     }
 
-    rc = microprotocols_add(type, (PyObject*)&pysqlite_PrepareProtocolType, caster);
+    rc = pysqlite_microprotocols_add(type, (PyObject*)&pysqlite_PrepareProtocolType, caster);
     if (rc == -1)
         return NULL;
 
@@ -244,8 +244,8 @@
      METH_VARARGS, module_register_adapter_doc},
     {"register_converter", (PyCFunction)module_register_converter,
      METH_VARARGS, module_register_converter_doc},
-    {"adapt",  (PyCFunction)psyco_microprotocols_adapt, METH_VARARGS,
-     psyco_microprotocols_adapt_doc},
+    {"adapt",  (PyCFunction)pysqlite_adapt, METH_VARARGS,
+     pysqlite_adapt_doc},
     {"enable_callback_tracebacks",  (PyCFunction)enable_callback_tracebacks,
      METH_VARARGS, enable_callback_tracebacks_doc},
     {NULL, NULL}
@@ -423,7 +423,7 @@
     Py_DECREF(tmp_obj);
 
     /* initialize microprotocols layer */
-    microprotocols_init(dict);
+    pysqlite_microprotocols_init(dict);
 
     /* initialize the default converters */
     converters_init(dict);
diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c
index 0e77668..dae83d4 100644
--- a/Modules/_sqlite/statement.c
+++ b/Modules/_sqlite/statement.c
@@ -250,7 +250,7 @@
             if (!_need_adapt(current_param)) {
                 adapted = current_param;
             } else {
-                adapted = microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL);
+                adapted = pysqlite_microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL);
                 if (adapted) {
                     Py_DECREF(current_param);
                 } else {
@@ -295,7 +295,7 @@
             if (!_need_adapt(current_param)) {
                 adapted = current_param;
             } else {
-                adapted = microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL);
+                adapted = pysqlite_microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL);
                 if (adapted) {
                     Py_DECREF(current_param);
                 } else {
diff --git a/Modules/_sqlite/util.c b/Modules/_sqlite/util.c
index e06c299..6be39ae 100644
--- a/Modules/_sqlite/util.c
+++ b/Modules/_sqlite/util.c
@@ -24,7 +24,7 @@
 #include "module.h"
 #include "connection.h"
 
-int _sqlite_step_with_busyhandler(sqlite3_stmt* statement, pysqlite_Connection* connection)
+int pysqlite_step(sqlite3_stmt* statement, pysqlite_Connection* connection)
 {
     int rc;
 
diff --git a/Modules/_sqlite/util.h b/Modules/_sqlite/util.h
index 179be78..2a45636 100644
--- a/Modules/_sqlite/util.h
+++ b/Modules/_sqlite/util.h
@@ -28,7 +28,7 @@
 #include "sqlite3.h"
 #include "connection.h"
 
-int _sqlite_step_with_busyhandler(sqlite3_stmt* statement, pysqlite_Connection* connection);
+int pysqlite_step(sqlite3_stmt* statement, pysqlite_Connection* connection);
 
 /**
  * Checks the SQLite error code and sets the appropriate DB-API exception.
