Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 5358)
+++ /trunk/Config.kmk	(revision 5359)
@@ -785,5 +785,21 @@
 # Overridable libraries (unix).
 LIB_PTHREAD      ?= pthread
-LIB_XCURSOR      ?= Xcursor
+
+# Xcursor (consider an SDK for this).
+# (LIB_XCURSOR is legacy, remove in a month or two.)
+ifndef VBOX_XCURSOR_LIBS
+ VBOX_XCURSOR_LIBS := $(LIB_XCURSOR)
+endif
+ifeq ($(VBOX_XCURSOR_LIBS),)
+ ifeq ($(BUILD_TARGET),solaris)
+  VBOX_XCURSOR_LIBS := $(lastword $(wildcard $(PATH_DEVTOOLS_TRG)/libXcursor/*/lib/libXcursor.a))
+  ifneq ($(VBOX_XCURSOR_LIBS),)
+   VBOX_XCURSOR_INCS := $(patsubst %/lib/libXcursor.a,%/include, $(VBOX_XCURSOR_LIBS))
+  endif
+ endif
+ VBOX_XCURSOR_LIBS ?= Xcursor
+else
+ VBOX_XCURSOR_LIBS ?= $(LIB_XCURSOR)
+endif
 
 ## Enable C++ electric fence heap.
@@ -1154,5 +1170,12 @@
  ifndef QTDIR
   ifdef VBOX_WITH_QTGUI
-   QTDIR := $(wildcard /usr/share/qt3)
+   ifeq ($(BUILD_TARGET),solaris)
+    QTDIR := $(lastword $(sort $(wildcard $(PATH_DEVTOOLS_TRG)/qt/v3.*)))
+   endif
+   ifeq ($(QTDIR),)
+    QTDIR := $(wildcard /usr/share/qt3)
+   else
+    export LD_LIBRARY_PATH := $(QTDIR)/lib:$(LD_LIBRARY_PATH)
+   endif
    ifeq ($(QTDIR),)
     QTDIR := $(patsubst %/bin/moc,%,$(firstword $(wildcard /usr/bin/moc /usr/local/bin/moc /usr/X11R6/bin/moc)))
@@ -2088,5 +2111,8 @@
   TEMPLATE_VBOXQTGUIEXE_LIBPATH +=
  else
+  TEMPLATE_VBOXQTGUIEXE_INCS += \
+	$(VBOX_XCURSOR_INCS)
   TEMPLATE_VBOXQTGUIEXE_LIBS += \
+    $(VBOX_XCURSOR_LIBS) \
 	Xext \
 	X11 \
@@ -2103,5 +2129,5 @@
   ifeq ($(BUILD_TARGET),solaris)
    TEMPLATE_VBOXQTGUIEXE_LIBS += \
-     	rt socket nsl
+	rt socket nsl
   endif
  endif
Index: /trunk/configure
===================================================================
--- /trunk/configure	(revision 5358)
+++ /trunk/configure	(revision 5359)
@@ -921,5 +921,5 @@
   if test_compile "$LIBX11 $LIBXCURSOR $I_INCX11" Xcursor Xcursor; then
     log_success "found"
-    cnf_append "LIB_XCURSOR" "`strip_l "$LIBXCURSOR"`"
+    cnf_append "VBOX_XCURSOR_LIBS" "`strip_l "$LIBXCURSOR"`"
   fi
 }
Index: /trunk/src/VBox/Frontends/VBoxBFE/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Frontends/VBoxBFE/Makefile.kmk	(revision 5358)
+++ /trunk/src/VBox/Frontends/VBoxBFE/Makefile.kmk	(revision 5359)
@@ -81,4 +81,8 @@
 	$(PATH_VBoxBFE) \
 	$(PATH_BIN)/sdk/include
+ifneq ($(filter-out win os2 l4 darwin,$(BUILD_TARGET)),) # X11
+VBoxBFE_INCS += \
+	$(VBOX_XCURSOR_INCS)
+endif
 VBoxBFE_INCS.freebsd = \
 	/usr/include \
@@ -95,8 +99,7 @@
 	$(LIB_REM)
 endif
-#ifneq ($(filter-out win os2 l4 darwin,$(BUILD_TARGET)),) # X11
-ifneq ($(filter-out win os2 l4 darwin solaris,$(BUILD_TARGET)),) # X11 - todo fix solaris Xcursor
+ifneq ($(filter-out win os2 l4 darwin,$(BUILD_TARGET)),) # X11
 VBoxBFE_LIBS += \
-	$(LIB_XCURSOR)
+	$(VBOX_XCURSOR_LIBS)
 VBoxBFE_LIBPATH += \
 	$(VBOX_LIBPATH_X11)
Index: /trunk/src/VBox/Frontends/VBoxSDL/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Frontends/VBoxSDL/Makefile.kmk	(revision 5358)
+++ /trunk/src/VBox/Frontends/VBoxSDL/Makefile.kmk	(revision 5359)
@@ -37,4 +37,5 @@
 	win32/VBoxSDL.rc
 endif
+
 VBoxSDL_DEFS       =
 ifdef VBOX_WITH_SECURELABEL
@@ -56,22 +57,26 @@
 VBoxSDL_DEFS.win.x86 = _WIN32_WINNT=0x0500
 VBoxSDL_DEFS.win.amd64 = _WIN32_WINNT=0x0510
+
 VBoxSDL_INCS = \
 	$(PATH_BIN)/sdk/include \
 	$(PATH_VBoxSDL)
+ifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(BUILD_TARGET)),) # X11
+VBoxSDL_INCS += \
+	$(VBOX_XCURSOR_INCS)
+endif
+VBoxSDL_INCS.freebsd = \
+	/usr/include \
+	/usr/local/include \
+	/usr/X11R6/include ## @todo figure this out.
 ifneq ($(filter-out win solaris,$(BUILD_TARGET)),)
+
 VBoxSDL_LIBS = \
 	$(LIB_SDK_LIBSDL_SDLMAIN)
 endif
 ifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(BUILD_TARGET)),) # X11
-ifneq ($(BUILD_TARGET),solaris) ## @todo Xcursor on solaris.
 VBoxSDL_LIBS += \
-	$(LIB_XCURSOR)
-endif
+	$(VBOX_XCURSOR_LIBS)
 VBoxSDL_LIBPATH = \
 	$(VBOX_LIBPATH_X11)
-VBoxSDL_INCS.freebsd = \
-	/usr/include \
-	/usr/local/include \
-	/usr/X11R6/include ## @todo figure this out.
 endif
 VBoxSDL_LIBS.solaris = \
@@ -80,4 +85,5 @@
  #VBoxSDL_LIBS.linux += GL
 endif
+
 VBoxSDL_LDFLAGS.darwin = \
 	-framework Foundation -framework AppKit
Index: /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 5358)
+++ /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 5359)
@@ -220,5 +220,5 @@
 VirtualBox_DEFS.openbsd   = VBOX_GUI_USE_QIMAGE VBOX_GUI_USE_SDL
 VirtualBox_DEFS.os2       = VBOX_GUI_USE_QIMAGE VBOX_GUI_USE_SDL QT_DLL
-VirtualBox_DEFS.solaris   = VBOX_GUI_USE_QIMAGE VBOX_WITHOUT_XCURSOR #VBOX_GUI_USE_SDL
+VirtualBox_DEFS.solaris   = VBOX_GUI_USE_QIMAGE #VBOX_GUI_USE_SDL
 VirtualBox_DEFS.win       = VBOX_GUI_USE_QIMAGE UNICODE QT_DLL
 VirtualBox_DEFS.win.amd64 = VBOX_WITHOUT_QHTTP
