Index: win32/filed/winservice.cpp
===================================================================
--- win32/filed/winservice.cpp	(revision 5142)
+++ win32/filed/winservice.cpp	(working copy)
@@ -260,7 +260,7 @@
     }
 
      // Set up some standard service state values
-    g_srvstatus.dwServiceType = SERVICE_WIN32 | SERVICE_INTERACTIVE_PROCESS;
+    g_srvstatus.dwServiceType = SERVICE_WIN32;
     g_srvstatus.dwServiceSpecificExitCode = 0;
 
         // Give this status to the SCM
Index: win32/filed/winmain.cpp
===================================================================
--- win32/filed/winmain.cpp	(revision 5142)
+++ win32/filed/winmain.cpp	(working copy)
@@ -253,12 +253,16 @@
     */
    g_servicethread = GetCurrentThreadId();
 
+   bacMenu *menu=NULL;
+
+   if (!bacService::RunningAsService()) {
    /* Create tray icon & menu if we're running as an app */
-   bacMenu *menu = new bacMenu();
+      menu = new bacMenu();
    if (menu == NULL) {
 //    log_error_message("Could not create sys tray menu");
       PostQuitMessage(0);
    }
+   }
 
    /* Now enter the Windows message handling loop until told to quit! */
    MSG msg;
