Don't destroy the caret on SWP_HIDEWINDOW.

diff --git a/windows/winpos.c b/windows/winpos.c
index e2f56e4..7ad7139 100644
--- a/windows/winpos.c
+++ b/windows/winpos.c
@@ -2829,8 +2829,14 @@
     if( winpos.flags & SWP_HIDEWINDOW )
     {
 	wndPtr->dwStyle &= ~WS_VISIBLE;
+    }
 
-	if (hwnd == CARET_GetHwnd()) DestroyCaret();
+    if (hwnd == CARET_GetHwnd())
+    {
+        if( winpos.flags & SWP_HIDEWINDOW )
+            HideCaret(hwnd); 
+	else if (winpos.flags & SWP_SHOWWINDOW)
+	    ShowCaret(hwnd);
     }
 
     /* ------------------------------------------------------------------------ FINAL */