diff --git a/src/sbbs3/inkey.cpp b/src/sbbs3/inkey.cpp
index 6471efbbc21ceebf2f102b37f63d0b6471d9832c..4073a5bfc5d71fc9c50863eab162438006dd2648 100644
--- a/src/sbbs3/inkey.cpp
+++ b/src/sbbs3/inkey.cpp
@@ -567,7 +567,12 @@ void sbbs_t::set_mouse(long flags)
 		if(mode & MOUSE_MODE_ANY)	ansi_mouse(ANSI_MOUSE_ANY, true);
 		if(mode & MOUSE_MODE_EXT)	ansi_mouse(ANSI_MOUSE_EXT, true);
 
-		mouse_mode = flags;
+		if(mouse_mode != flags) {
+#if 0
+			lprintf(LOG_DEBUG, "New mouse mode: %X (was: %X)", flags, mouse_mode);
+#endif
+			mouse_mode = flags;
+		}
 	}
 }
 
@@ -589,7 +594,7 @@ struct mouse_hotspot* sbbs_t::add_hotspot(struct mouse_hotspot* spot)
 	list_node_t* node = listInsertNodeData(&mouse_hotspots, spot, sizeof(*spot));
 	if(node == NULL)
 		return NULL;
-	set_mouse(MOUSE_MODE_NORM | MOUSE_MODE_EXT);
+	set_mouse(MOUSE_MODE_ON);
 	return (struct mouse_hotspot*)node->data;
 }
 
diff --git a/src/sbbs3/js_console.cpp b/src/sbbs3/js_console.cpp
index 4296177e111719ef36af2867ca9e35ff00904f33..118f636d037f7c54276d7a75c7b13656f122d168 100644
--- a/src/sbbs3/js_console.cpp
+++ b/src/sbbs3/js_console.cpp
@@ -231,6 +231,8 @@ static JSBool js_console_set(JSContext *cx, JSObject *obj, jsid id, JSBool stric
 			sbbs->console=val;
 			break;
 		case CON_PROP_MOUSE_MODE:
+			if(*vp == JSVAL_TRUE)
+				val = MOUSE_MODE_ON;
 			sbbs->set_mouse(val);
 			break;
 		case CON_PROP_LNCNTR:
@@ -387,7 +389,8 @@ static jsSyncPropertySpec js_console_properties[] = {
 #ifdef BUILD_JSDOCS
 static const char* con_prop_desc[] = {
 	 "status bit-field (see <tt>CON_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)"
-	,"mouse mode bit-field (see <tt>MOUSE_MODE_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)"
+	,"mouse mode bit-field (see <tt>MOUSE_MODE_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions, "
+		"set to <tt>true</tt> for default enabled mode, <tt>false</tt> to disable)"
 	,"current 0-based line counter (used for automatic screen pause)"
 	,"current 0-based row counter"
 	,"current 0-based column counter (used to auto-increment <i>line_counter</i> when screen wraps)"
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 67a03dffd2265ce63ea428c0e48693a3fe0724d9..cd0508edce1d7004ff46905b871d8a8ef6aa56cc 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -903,6 +903,7 @@ public:
 #define MOUSE_MODE_BTN		(1<<2)	// Button-event tracking mode mouse reporting
 #define MOUSE_MODE_ANY		(1<<3)	// Any-event tracking mode mouse reporting
 #define MOUSE_MODE_EXT		(1<<4)	// SGR-encoded extended coordinate mouse reporting
+#define MOUSE_MODE_ON		(MOUSE_MODE_NORM | MOUSE_MODE_EXT) // Default mouse "enabled" mode flags
 
 	long	mouse_mode;			// Mouse reporting mode flags
 	uint	hot_attr;			// Auto-Mouse hot-spot attribute (when non-zero)