Index: kitdll/build.sh
==================================================================
--- kitdll/build.sh
+++ kitdll/build.sh
@@ -64,13 +64,11 @@
 	# Create VFS directory
 	mkdir "starpack.vfs"
 	mkdir "starpack.vfs/lib"
 
 	## Copy in required built directories
-	cp -r "${OTHERPKGSDIR}"/tcl/out/* 'starpack.vfs/'
-	cp -r "${OTHERPKGSDIR}"/tclvfs/out/* 'starpack.vfs/'
-	cp -r "${OTHERPKGSDIR}"/thread/out/* 'starpack.vfs/'
+	cp -r "${OTHERPKGSDIR}"/*/out/* 'starpack.vfs/'
 
 	## Rename the "vfs" package directory to what "boot.tcl" expects
 	mv 'starpack.vfs/lib'/vfs* 'starpack.vfs/lib/vfs'
 
 	## Install "boot.tcl"
@@ -82,11 +80,11 @@
 
 	echo "Running: ${MAKE:-make}"
 	${MAKE:-make} TCLSH_NATIVE="${TCLSH_NATIVE}" || exit 1
 
 	# Strip the KitDLL of debugging symbols, if possible
-	"${STRIP:-strip}" -g libtcl.* >/dev/null 2>/dev/null
+	"${STRIP:-strip}" -g libtclkit.* >/dev/null 2>/dev/null
 
 	exit 0
 ) || exit 1
 
 exit 0

Index: kitdll/buildsrc/kitdll-0.0/Makefile.in
==================================================================
--- kitdll/buildsrc/kitdll-0.0/Makefile.in
+++ kitdll/buildsrc/kitdll-0.0/Makefile.in
@@ -1,8 +1,9 @@
 CC = @CC@
 CFLAGS = @CFLAGS@ @SHOBJFLAGS@ -Wall
 CPPFLAGS = @CPPFLAGS@ @DEFS@ -DKITDLL_MAKE_LOADABLE=1
+WISH_CFLAGS = @WISH_CFLAGS@
 LDFLAGS = @LDFLAGS@
 SHOBJLDFLAGS = @SHOBJLDFLAGS@
 LIBS = @LIBS@
 STATICLIBS = @ARCHS@
 OBJS = vfs_kitdll_data_tcl.o kitInit.o rechan.o pwb.o
@@ -33,10 +34,14 @@
 # Test driver
 tclsh.o: tclsh.c
 tclsh: tclsh.o libtclkit.@SHOBJEXT@
 	$(CC) $(CPPFLAGS) $(CFLAGS) -o tclsh tclsh.o -L. -ltclkit -Wl,-R,`pwd`
 
+wish.o: wish.c
+wish: wish.o libtclkit.@SHOBJEXT@
+	$(CC) $(CPPFLAGS) $(CFLAGS) $(WISH_CFLAGS) -o wish wish.o -L. -ltclkit -Wl,-R,`pwd`
+
 # Cleanup routeines
 clean:
 	rm -f libtclkit.@SHOBJEXT@
 	rm -f $(OBJS)
 	rm -f vfs_kitdll_data_tcl.c

Index: kitdll/buildsrc/kitdll-0.0/aclocal.m4
==================================================================
--- kitdll/buildsrc/kitdll-0.0/aclocal.m4
+++ kitdll/buildsrc/kitdll-0.0/aclocal.m4
@@ -217,23 +217,42 @@
 ])
 
 AC_DEFUN(DC_FIND_TCLKIT_LIBS, [
 	DC_SETUP_TCL_PLAT_DEFS
 
-	for proj in tcl tclvfs; do
+	WISH_CFLAGS=""
+
+	for proj in tcl tclvfs tk; do
 		AC_MSG_CHECKING([for libraries required for ${proj}])
 
 		libdir="../../../${proj}/inst"
 		libfiles="`find "${libdir}" -name '*.a' 2>/dev/null | tr "\n" ' '`"
 		libfilesnostub="`find "${libdir}" -name '*.a' 2>/dev/null | grep -v 'stub' | tr "\n" ' '`"
 
 		if test "$proj" = "tcl"; then
 			libfiles="${libfilesnostub}"
 		fi
+
+		if test "$proj" = "tk"; then
+			libfiles="${libfilesnostub}"
+			if test -n "$libfiles"; then
+				DC_DO_TK
+				AC_DEFINE(KIT_INCLUDES_TK, [1], [Specify this if we link statically to Tk])
+
+				if test -n "${TK_VERSION}"; then
+					AC_DEFINE_UNQUOTED(KIT_TK_VERSION, "${TK_VERSION}${TK_PATCH_LEVEL}", [Specify the version of Tk])
+				fi
+
+				if test "$host_os" = "mingw32msvc" -o "$host_os" = "mingw32"; then
+					WISH_CFLAGS="-mwindows"
+				fi
+			fi
+		fi
 
 		ARCHS="${ARCHS} ${libfiles}"
 
 		AC_MSG_RESULT([${libfiles}])
 	done
 
+	AC_SUBST(WISH_CFLAGS)
 	AC_SUBST(ARCHS)
 ])

Index: kitdll/buildsrc/kitdll-0.0/kitInit.c
==================================================================
--- kitdll/buildsrc/kitdll-0.0/kitInit.c
+++ kitdll/buildsrc/kitdll-0.0/kitInit.c
@@ -1,6 +1,17 @@
-#include <tcl.h>
+#ifdef KIT_INCLUDES_TK
+#  include <tk.h>
+#else
+#  include <tcl.h>
+#endif /* KIT_INCLUDES_TK */
+
+#ifdef _WIN32
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+#  undef WIN32_LEAN_AND_MEAN
+#endif /* _WIN32 */
+
 #include "tclInt.h"
 
 #if defined(HAVE_TCL_GETENCODINGNAMEFROMENVIRONMENT) && defined(HAVE_TCL_SETSYSTEMENCODING)
 #  define TCLKIT_CAN_SET_ENCODING 1
 #endif
@@ -33,10 +44,15 @@
 	"set s [read $f]\n"
 	"close $f\n"
 	"::tclkit::init::initInterp\n"
 	"rename ::tclkit::init::initInterp {}\n"
 	"uplevel #0 $s\n"
+#if defined(KIT_INCLUDES_TK) && defined(KIT_TK_VERSION)
+	"package ifneeded Tk " KIT_TK_VERSION " {\n"
+		"load {} Tk\n"
+	"}\n"
+#endif
 #ifdef _WIN32
 	"catch {load {} dde}\n"
 	"catch {load {} registry}\n"
 #endif /* _WIN32 */
 "}\n"
@@ -87,10 +103,13 @@
 #endif
 #ifdef _WIN32
 	Tcl_StaticPackage(0, "dde", Dde_Init, NULL);
 	Tcl_StaticPackage(0, "registry", Registry_Init, NULL);
 #endif
+#ifdef KIT_INCLUDES_TK
+	Tcl_StaticPackage(0, "Tk", Tk_Init, Tk_SafeInit);
+#endif  
 
 	TclSetPreInitScript(preInitCmd);
 
 	return;
 }

Index: kitdll/buildsrc/kitdll-0.0/tclsh.c
==================================================================
--- kitdll/buildsrc/kitdll-0.0/tclsh.c
+++ kitdll/buildsrc/kitdll-0.0/tclsh.c
@@ -1,9 +1,5 @@
-#ifdef HAVE_STDIO_H
-#  include <stdio.h>
-#endif
-
 #include <tcl.h>
 
 int Tcl_AppInit(Tcl_Interp *interp) {
 	return(Tcl_Init(interp));
 }

ADDED   kitdll/buildsrc/kitdll-0.0/wish.c
Index: kitdll/buildsrc/kitdll-0.0/wish.c
==================================================================
--- /dev/null
+++ kitdll/buildsrc/kitdll-0.0/wish.c
@@ -0,0 +1,30 @@
+#include <tk.h>
+
+int Tcl_AppInit(Tcl_Interp *interp) {
+	int tcl_ret;
+
+	tcl_ret = Tcl_Init(interp);
+	if (tcl_ret == TCL_ERROR) {
+		return(tcl_ret);
+	}
+
+	tcl_ret = Tk_Init(interp);
+	if (tcl_ret == TCL_ERROR) {
+		return(tcl_ret);
+	}
+
+#ifdef _WIN32
+	tcl_ret = Tk_CreateConsoleWindow(interp);
+	if (tcl_ret == TCL_ERROR) {
+		return(tcl_ret);
+	}
+#endif
+
+	return(TCL_OK);
+}
+
+int main(int argc, char **argv) {
+	Tk_Main(argc, argv, Tcl_AppInit);
+
+	return(1);
+}