diff --git a/src/lib/components/chat/ModelSelector/Selector.svelte b/src/lib/components/chat/ModelSelector/Selector.svelte
index ffc2935a3..0f310fb01 100644
--- a/src/lib/components/chat/ModelSelector/Selector.svelte
+++ b/src/lib/components/chat/ModelSelector/Selector.svelte
@@ -67,7 +67,10 @@
 
 	let ollamaVersion = null;
 
-	let selectedModelIdx = 0;
+	let selectedModelIdx = Math.max(
+		0,
+		items.findIndex((item) => item.value === value)
+	);
 
 	const fuse = new Fuse(
 		items.map((item) => {
@@ -287,8 +290,38 @@
 	bind:open={show}
 	onOpenChange={async () => {
 		searchValue = '';
-		selectedModelIdx = 0;
-		window.setTimeout(() => document.getElementById('model-search-input')?.focus(), 0);
+		// Do NOT reset filters - keep the previously selected tag/connection type
+		
+		await tick();
+		
+		// First check if the currently selected model is visible in the filtered list
+		const selectedInFiltered = filteredItems.findIndex(item => item.value === value);
+		
+		if (selectedInFiltered >= 0) {
+			// The selected model is visible in the current filter
+			selectedModelIdx = selectedInFiltered;
+		} else {
+			// The selected model is not visible, default to first item in filtered list
+			selectedModelIdx = 0;
+		}
+		
+		await tick();
+		
+		// Scroll to the selected item if it exists in the current filtered view
+		const itemToScrollTo = selectedInFiltered >= 0
+			? document.querySelector(`[data-value="${value}"]`)
+			: document.querySelector('[data-arrow-selected="true"]');
+			
+		if (itemToScrollTo) {
+			const container = itemToScrollTo.closest('.overflow-y-auto');
+			if (container) {
+				const itemTop = itemToScrollTo.offsetTop;
+				const containerHeight = container.clientHeight;
+				const itemHeight = itemToScrollTo.clientHeight;
+				
+				container.scrollTop = itemTop - (containerHeight / 2) + (itemHeight / 2);
+			}
+		}
 	}}
 	closeFocus={false}
 >
@@ -433,6 +466,7 @@
 							? 'bg-gray-100 dark:bg-gray-800 group-hover:bg-transparent'
 							: ''}"
 						data-arrow-selected={index === selectedModelIdx}
+						data-value={item.value}
 						on:click={() => {
 							value = item.value;
 							selectedModelIdx = index;