diff --git a/src/sbbs3/GNUmakefile b/src/sbbs3/GNUmakefile
index 51b3d3fdd1641b59e17667050b8ab3c6f2f0ba5c..ed5bd75dc02424b7dc54da8686f45b01492d898f 100644
--- a/src/sbbs3/GNUmakefile
+++ b/src/sbbs3/GNUmakefile
@@ -104,6 +104,14 @@ ifndef WITHOUT_MOSQUITTO
   endif
  endif
 endif
+ifndef WITHOUT_SQLITE3
+ ifneq ($(os), win32)
+  ifeq ($(shell pkg-config 'sqlite3' --exists && echo "yes"),yes)
+   CFLAGS += -DUSE_SQLITE3
+   JS_LIBS += $(shell pkg-config sqlite3 --libs)
+  endif
+ endif
+endif
 ifeq ($(shell pkg-config libarchive --exists && echo "yes"),yes)
  CFLAGS += $(shell pkg-config libarchive --cflags)
  FILE_LIBS	= $(shell pkg-config libarchive --libs)
@@ -122,8 +130,6 @@ else
  FILE_LIBS	= -larchive
 endif
 
-JS_LIBS += $(shell pkg-config --libs sqlite3)
-
 include sbbsdefs.mk
 MT_CFLAGS	+=	$(SBBSDEFS) $(SFTP-MT_CFLAGS)
 
diff --git a/src/sbbs3/js_sqlite.c b/src/sbbs3/js_sqlite.c
index 044cabdd8de3741ef86788d7eb45ae1231e73e2e..cb53ed2d586b1f66cedd0d99d94813c9fc84838a 100644
--- a/src/sbbs3/js_sqlite.c
+++ b/src/sbbs3/js_sqlite.c
@@ -300,14 +300,15 @@ static JSBool js_sqlite_get(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
 	return JS_TRUE;
 }
 
-#define SQLITE_PROP_FLAGS JSPROP_ENUMERATE | JSPROP_READONLY
+#define SQLITE_PROP_FLAGS JSPROP_ENUMERATE
+#define SQLITE_PROP_ROFLAGS JSPROP_ENUMERATE | JSPROP_READONLY
 
 static jsSyncPropertySpec js_sqlite_properties[] = {
 /*		 name				,tinyid					,flags,				ver	*/
-	{   "name", SQLITE_PROP_NAME, JSPROP_ENUMERATE | JSPROP_READONLY,  310},
-	{   "stmt", SQLITE_PROP_STMT, JSPROP_ENUMERATE,  310},
-	{   "debug", SQLITE_PROP_DEBUG, JSPROP_ENUMERATE,  310},
-	{   "errormsg", SQLITE_PROP_ERRORMSG, JSPROP_ENUMERATE | JSPROP_READONLY,  310},
+	{   "name", SQLITE_PROP_NAME, SQLITE_PROP_ROFLAGS,  321},
+	{   "stmt", SQLITE_PROP_STMT, JSPROP_ENUMERATE,  321},
+	{   "debug", SQLITE_PROP_DEBUG, JSPROP_ENUMERATE,  321},
+	{   "errormsg", SQLITE_PROP_ERRORMSG, SQLITE_PROP_ROFLAGS,  321},
 	{0}
 };
 
@@ -325,13 +326,13 @@ static char*            sqlite_prop_desc[] = {
 static jsSyncMethodSpec js_sqlite_functions[] = {
 	{"open",            js_open,            1,  JSTYPE_BOOLEAN, JSDOCSTR("Open the database")
 	 , JSDOCSTR("open the sqlite3 database")
-	 , 310},
+	 , 321},
 	{"close",           js_close,           0,  JSTYPE_VOID,    JSDOCSTR("")
 	 , JSDOCSTR("close database")
-	 , 310},
+	 , 321},
 	{"exec",            js_exec,            0,  JSTYPE_BOOLEAN, JSDOCSTR("")
 	 , JSDOCSTR("exec the sql query on database")
-	 , 310},
+	 , 321},
 	{0}
 };
 
@@ -413,7 +414,7 @@ js_sqlite_constructor(JSContext* cx, uintN argc, jsval *arglist)
 
 #ifdef BUILD_JSDOCS
 	js_DescribeSyncObject(cx, obj, "Can used to manipulate sqlite database"
-	                      , 310
+	                      , 321
 	                      );
 	js_DescribeSyncConstructor(cx, obj, "To create a new Sqlite object: <tt>var f = new Sqlite(<i>filename</i>)</tt>");
 	js_CreateArrayOfStrings(cx, obj, "_property_desc_list", sqlite_prop_desc, JSPROP_READONLY);
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 18a9b2ac724fd25344fadafbfcca540eee48a0ce..6eed7f41364b23b7519599b482ed9c1a7c3d9f9f 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -1633,9 +1633,12 @@ extern "C" bool js_CreateCommonObjects(JSContext* js_cx
 		if (js_CreateMQTTClass(js_cx, *glob) == NULL)
 			break;
 #endif
+
+#if defined USE_SQLITE3
 		/* Sqlite Class */
 		if(js_CreateSqliteClass(js_cx, *glob)==NULL)
 			break;
+#endif
 
 		/* Area Objects */
 		if (!js_CreateUserObjects(js_cx, *glob, cfg, /* user: */ NULL, client, startup == NULL ? NULL :startup->web_file_vpath_prefix, /* subscan: */ NULL, mqtt))
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index e5f947feb532982a63843fd63c85dfeebc601675..58a10613f23e45d2c5b6e326b4c49c0eeabffd12 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -1559,6 +1559,7 @@ extern "C" {
 
 	/* js_sqlite.c */
 	DLLEXPORT JSObject* js_CreateSqliteClass(JSContext* cx, JSObject* parent);
+
 	DLLEXPORT JSObject* js_CreateMQTTClass(JSContext*, JSObject* parent);
 #endif
 
diff --git a/src/sbbs3/ver.cpp b/src/sbbs3/ver.cpp
index ca73fdaa875af29118d1208b8dc41791f8311ea0..a0ab7558450671a4a6b5c9881c0661dda165514a 100644
--- a/src/sbbs3/ver.cpp
+++ b/src/sbbs3/ver.cpp
@@ -27,6 +27,9 @@
 #include "git_branch.h"
 #include "ver.h"
 #include <archive.h>
+#ifdef USE_SQLITE3
+#include <sqlite3.h>
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -140,6 +143,13 @@ void sbbs_t::ver()
 	CRLF;
 #endif
 
+#ifdef USE_SQLITE3
+	safe_snprintf(str, sizeof(str), "libsqlite3 %s (%u)", SQLITE_VERSION, SQLITE_VERSION_NUMBER);
+	term->center(str);
+	CRLF;
+#endif
+	
+
 	safe_snprintf(str, sizeof(str), "%s %s", os_version(os, sizeof(os)), os_cpuarch(cpu, sizeof(cpu)));
 	term->center(str);
 }