diff -urN a/sasldb/db_berkeley.c b/sasldb/db_berkeley.c
--- a/sasldb/db_berkeley.c	2014-08-12 22:40:34.277570400 +0100
+++ b/sasldb/db_berkeley.c	2014-08-12 22:40:35.109618000 +0100
@@ -358,7 +358,7 @@
   return result;
 }
 
-int _sasl_check_db(const sasl_utils_t *utils,
+LIBSASL_API int _sasl_check_db(const sasl_utils_t *utils,
 		   sasl_conn_t *conn)
 {
     const char *path = SASL_DB_PATH;
@@ -412,7 +412,7 @@
     DBC *cursor;
 } berkleyhandle_t;
 
-sasldb_handle _sasldb_getkeyhandle(const sasl_utils_t *utils,
+LIBSASL_API sasldb_handle _sasldb_getkeyhandle(const sasl_utils_t *utils,
 				   sasl_conn_t *conn) 
 {
     int ret;
@@ -447,7 +447,7 @@
     return (sasldb_handle)handle;
 }
 
-int _sasldb_getnextkey(const sasl_utils_t *utils __attribute__((unused)),
+LIBSASL_API int _sasldb_getnextkey(const sasl_utils_t *utils __attribute__((unused)),
 		       sasldb_handle handle, char *out,
 		       const size_t max_out, size_t *out_len) 
 {
@@ -501,7 +501,7 @@
 }
 
 
-int _sasldb_releasekeyhandle(const sasl_utils_t *utils,
+LIBSASL_API int _sasldb_releasekeyhandle(const sasl_utils_t *utils,
 			     sasldb_handle handle) 
 {
     berkleyhandle_t *dbh = (berkleyhandle_t *)handle;
diff -urN a/sasldb/db_gdbm.c b/sasldb/db_gdbm.c
--- a/sasldb/db_gdbm.c	2014-08-12 22:40:34.276570300 +0100
+++ b/sasldb/db_gdbm.c	2014-08-12 22:40:35.111618100 +0100
@@ -221,7 +221,7 @@
   return result;
 }
 
-int _sasl_check_db(const sasl_utils_t *utils,
+LIBSASL_API int _sasl_check_db(const sasl_utils_t *utils,
 		   sasl_conn_t *conn)
 {
     const char *path = SASL_DB_PATH;
@@ -270,7 +270,7 @@
     int first;
 } handle_t;
 
-sasldb_handle _sasldb_getkeyhandle(const sasl_utils_t *utils,
+LIBSASL_API sasldb_handle _sasldb_getkeyhandle(const sasl_utils_t *utils,
 				   sasl_conn_t *conn) 
 {
     const char *path = SASL_DB_PATH;
@@ -316,7 +316,7 @@
     return (sasldb_handle)handle;
 }
 
-int _sasldb_getnextkey(const sasl_utils_t *utils __attribute__((unused)),
+LIBSASL_API int _sasldb_getnextkey(const sasl_utils_t *utils __attribute__((unused)),
 		       sasldb_handle handle, char *out,
 		       const size_t max_out, size_t *out_len) 
 {
@@ -346,7 +346,7 @@
     return SASL_CONTINUE;
 }
 
-int _sasldb_releasekeyhandle(const sasl_utils_t *utils,
+LIBSASL_API int _sasldb_releasekeyhandle(const sasl_utils_t *utils,
 			     sasldb_handle handle) 
 {
     handle_t *dbh = (handle_t *)handle;
diff -urN a/sasldb/db_ndbm.c b/sasldb/db_ndbm.c
--- a/sasldb/db_ndbm.c	2014-08-12 22:40:34.276570300 +0100
+++ b/sasldb/db_ndbm.c	2014-08-12 22:40:35.112618100 +0100
@@ -231,7 +231,7 @@
 #define SUFLEN 5
 #endif
 
-int _sasl_check_db(const sasl_utils_t *utils,
+LIBSASL_API int _sasl_check_db(const sasl_utils_t *utils,
 		   sasl_conn_t *conn)
 {
     const char *path = SASL_DB_PATH;
@@ -304,7 +304,7 @@
     int first;
 } handle_t;
 
-sasldb_handle _sasldb_getkeyhandle(const sasl_utils_t *utils,
+LIBSASL_API sasldb_handle _sasldb_getkeyhandle(const sasl_utils_t *utils,
 				   sasl_conn_t *conn) 
 {
     const char *path = SASL_DB_PATH;
@@ -350,7 +350,7 @@
     return (sasldb_handle)handle;
 }
 
-int _sasldb_getnextkey(const sasl_utils_t *utils __attribute__((unused)),
+LIBSASL_API int _sasldb_getnextkey(const sasl_utils_t *utils __attribute__((unused)),
 		       sasldb_handle handle, char *out,
 		       const size_t max_out, size_t *out_len) 
 {
@@ -380,7 +380,7 @@
     return SASL_CONTINUE;
 }
 
-int _sasldb_releasekeyhandle(const sasl_utils_t *utils,
+LIBSASL_API int _sasldb_releasekeyhandle(const sasl_utils_t *utils,
 			     sasldb_handle handle) 
 {
     handle_t *dbh = (handle_t *)handle;
diff -urN a/sasldb/db_none.c b/sasldb/db_none.c
--- a/sasldb/db_none.c	2014-08-12 22:40:34.276570300 +0100
+++ b/sasldb/db_none.c	2014-08-12 22:40:35.114618300 +0100
@@ -73,21 +73,21 @@
     return SASL_FAIL;
 }
 
-int _sasl_check_db(const sasl_utils_t *utils,
+LIBSASL_API int _sasl_check_db(const sasl_utils_t *utils,
 		   sasl_conn_t *conn)
 {
     if(conn) utils->seterror(conn, 0, "No Database Driver");
     return SASL_FAIL;
 }
 
-sasldb_handle _sasldb_getkeyhandle(const sasl_utils_t *utils,
+LIBSASL_API sasldb_handle _sasldb_getkeyhandle(const sasl_utils_t *utils,
                                    sasl_conn_t *conn) 
 {
     if(conn) utils->seterror(conn, 0, "No Database Driver");
     return NULL;
 }
 
-int _sasldb_getnextkey(const sasl_utils_t *utils __attribute__((unused)),
+LIBSASL_API int _sasldb_getnextkey(const sasl_utils_t *utils __attribute__((unused)),
                        sasldb_handle handle __attribute__((unused)),
 		       char *out __attribute__((unused)),
                        const size_t max_out __attribute__((unused)),
@@ -96,7 +96,7 @@
     return SASL_FAIL;
 }
 
-int _sasldb_releasekeyhandle(const sasl_utils_t *utils __attribute__((unused)),
+LIBSASL_API int _sasldb_releasekeyhandle(const sasl_utils_t *utils __attribute__((unused)),
                              sasldb_handle handle __attribute__((unused)))  
 {
     return SASL_FAIL;
