Index: src/ch/ClipboardMonitor.cpp
===================================================================
diff -u -N -ra27d1acf1bda3c25b6dcce0d0eb0278009ce63ae -r87efd9079c796add662b1189e84ca62472d2b757
--- src/ch/ClipboardMonitor.cpp	(.../ClipboardMonitor.cpp)	(revision a27d1acf1bda3c25b6dcce0d0eb0278009ce63ae)
+++ src/ch/ClipboardMonitor.cpp	(.../ClipboardMonitor.cpp)	(revision 87efd9079c796add662b1189e84ca62472d2b757)
@@ -181,17 +181,21 @@
 				if(bShutdown)
 				{
 					// adjust token privileges for NT
-					HANDLE hToken=NULL;
-					TOKEN_PRIVILEGES tp;
+					HANDLE hToken = nullptr;
+					TOKEN_PRIVILEGES tp = { 0 };
 					if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)
 						&& LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tp.Privileges[0].Luid))
 					{
 						tp.PrivilegeCount=1;
 						tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
 
 						AdjustTokenPrivileges(hToken, FALSE, &tp, NULL, NULL, NULL);
+
 					}
 
+					if(hToken)
+						CloseHandle(hToken);
+
 					BOOL bExit=ExitWindowsEx(EWX_POWEROFF | EWX_SHUTDOWN | (GetPropValue<PP_PFORCESHUTDOWN>(GetConfig()) ? EWX_FORCE : 0), 0);
 					if (bExit)
 						return 1;