win32: Only define sleep() when it's not found and reorder header file includes
diff --git a/configure.ac b/configure.ac
index 0a405e0..f44e26c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -64,7 +64,7 @@
 # Checks for library functions.
 AC_FUNC_MALLOC
 AC_FUNC_REALLOC
-AC_CHECK_FUNCS([strcasecmp strdup strerror strndup])
+AC_CHECK_FUNCS([strcasecmp strdup strerror strndup sleep])
 
 # Check for operating system
 AC_MSG_CHECKING([whether we need platform-specific build settings])
diff --git a/src/libusbmuxd.c b/src/libusbmuxd.c
index 8003730..f7508c5 100644
--- a/src/libusbmuxd.c
+++ b/src/libusbmuxd.c
@@ -47,10 +47,15 @@
 #define EBADMSG 104
 #endif
 
+#include <unistd.h>
+#include <signal.h>
+
 #ifdef WIN32
 #include <winsock2.h>
 #include <windows.h>
+#ifndef HAVE_SLEEP
 #define sleep(x) Sleep(x*1000)
+#endif
 #else
 #include <sys/socket.h>
 #include <arpa/inet.h>
@@ -65,9 +70,6 @@
 #define USBMUXD_SOCKET_NAME "usbmuxd"
 #endif /* HAVE_INOTIFY */
 
-#include <unistd.h>
-#include <signal.h>
-
 #include <plist/plist.h>
 #define PLIST_BUNDLE_ID "org.libimobiledevice.usbmuxd"
 #define PLIST_CLIENT_VERSION_STRING "usbmuxd built for freedom"