diff -ru Tk401.000/Menu/Menu.pm Tk401.000.my/Menu/Menu.pm
--- Tk401.000/Menu/Menu.pm	Mon Apr  1 01:42:00 1996
+++ Tk401.000.my/Menu/Menu.pm	Sat Dec 28 22:45:04 1996
@@ -724,8 +724,8 @@
    $parent = $parent->parent;
   }
  my $menu = $w->MenuDup($parent);
- $menu->overrideredirect(0);
- $menu->transient($parent);
+ # $menu->overrideredirect(0);
+ $menu->configure(-transient => 0);
  # Pick a title for the new menu by looking at the parent of the
  # original: if the parent is a menu, then use the text of the active
  # entry. If it's a menubutton then use its text.
diff -ru Tk401.000/Mwm/Makefile.PL Tk401.000.my/Mwm/Makefile.PL
--- Tk401.000/Mwm/Makefile.PL	Fri Apr 12 04:10:28 1996
+++ Tk401.000.my/Mwm/Makefile.PL	Fri Dec 27 01:50:02 1996
@@ -1,7 +1,21 @@
 
 use Tk::MMutil;
-Tk::MMutil::TkExtMakefile(
-      'dynamic_ptk' => 1
+
+if ($win_arch eq 'x') {
+  Tk::MMutil::TkExtMakefile(
+        'dynamic_ptk' => 1
       );
+} else {
+  open M, ">Makefile" or die "Cannot open Makefile for write: $!";
+  print M <<'E';
+all:
+
+clean:
+
+install:
+
+makemakerdflt:
 
+E
+}
 
diff -ru Tk401.000/pTk/mkVFunc Tk401.000.my/pTk/mkVFunc
--- Tk401.000/pTk/mkVFunc	Sat Sep 28 02:45:10 1996
+++ Tk401.000.my/pTk/mkVFunc	Sun Dec 29 01:51:12 1996
@@ -219,7 +219,7 @@
   $x =~ s/\.h/.exc/;
   Ignore($x) if (-f $x);
   $x =~ s/\.exc/.excwin/;
-  WinIgnore($x) if (-f $x);
+  WinIgnore($x) if (-f $x) and $win_arch eq 'open32';
   Vfunc($h);
   foreach $x (sort keys %Ignore)
    {
diff -ru Tk401.000/pTk/mTk/win/stubs.c Tk401.000.my/pTk/mTk/win/stubs.c
--- Tk401.000/pTk/mTk/win/stubs.c	Sat Sep 28 02:41:44 1996
+++ Tk401.000.my/pTk/mTk/win/stubs.c	Fri Dec 27 21:50:14 1996
@@ -560,3 +560,21 @@
     panic("Not implemented: TkSelCvtFromX");
     return NULL;
 }
+
+void
+XFreeFontNames(char **names)
+{
+  panic("Not implemented: XFreeFontNames");
+}
+
+char **XListFonts(
+    Display*		display,
+    _Xconst char*	pattern,
+    int			maxnames,
+    int*		actual_count_return
+)
+{
+  panic("Not implemented: XListFonts");
+  return NULL;
+}
+
diff -ru Tk401.000/pTk/mTk/win/tkWinImage.c Tk401.000.my/pTk/mTk/win/tkWinImage.c
--- Tk401.000/pTk/mTk/win/tkWinImage.c	Fri Feb 16 17:32:42 1996
+++ Tk401.000.my/pTk/mTk/win/tkWinImage.c	Sat Dec 28 22:03:20 1996
@@ -46,6 +46,13 @@
     return 0;
 }
 
+static void
+imfree(XImage *ximage)
+{
+    if (ximage->data) ckfree(ximage->data);
+    ckfree(ximage);
+}
+
 /*
  *----------------------------------------------------------------------
  *
@@ -111,7 +118,7 @@
     imagePtr->green_mask = visual->green_mask;
     imagePtr->blue_mask = visual->blue_mask;
     imagePtr->f.create_image = NULL;
-    imagePtr->f.destroy_image = NULL;
+    imagePtr->f.destroy_image = &imfree;
     imagePtr->f.get_pixel = NULL;
     imagePtr->f.sub_image = NULL;
     imagePtr->f.add_pixel = NULL;
diff -ru Tk401.000/pTk/Xlib.excwin Tk401.000.my/pTk/Xlib.excwin
--- Tk401.000/pTk/Xlib.excwin	Sat Sep 28 02:34:58 1996
+++ Tk401.000.my/pTk/Xlib.excwin	Sat Dec 28 20:04:04 1996
@@ -10,7 +10,7 @@
 XEventsQueued
 XDefaultScreen
 XDestroyRegion
-XFreeFontNames
+;;XFreeFontNames Xlib/
 XDefaultVisual
 XDefaultColormap
 XAllocClassHint
@@ -27,4 +27,4 @@
 XPutImage
 XSetRegion
 XSetWMName
-XListFonts
+;;XListFonts Xlib/
diff -ru Tk401.000/pTk/Xlib.m Tk401.000.my/pTk/Xlib.m
--- Tk401.000/pTk/Xlib.m	Sat Sep 28 02:49:08 1996
+++ Tk401.000.my/pTk/Xlib.m	Sun Dec 29 02:50:38 1996
@@ -183,11 +183,9 @@
 #ifndef XFreeFont
 #define XFreeFont (*XlibVptr->V_XFreeFont)
 #endif
-#ifndef __WIN32__
 #ifndef XFreeFontNames
 #define XFreeFontNames (*XlibVptr->V_XFreeFontNames)
 #endif
-#endif /* !__WIN32__ */
 #ifndef XFreeGC
 #define XFreeGC (*XlibVptr->V_XFreeGC)
 #endif
@@ -261,11 +259,9 @@
 #ifndef XKeysymToString
 #define XKeysymToString (*XlibVptr->V_XKeysymToString)
 #endif
-#ifndef __WIN32__
 #ifndef XListFonts
 #define XListFonts (*XlibVptr->V_XListFonts)
 #endif
-#endif /* !__WIN32__ */
 #ifndef XListHosts
 #define XListHosts (*XlibVptr->V_XListHosts)
 #endif
diff -ru Tk401.000/pTk/Xlib.t Tk401.000.my/pTk/Xlib.t
--- Tk401.000/pTk/Xlib.t	Sat Sep 28 02:49:08 1996
+++ Tk401.000.my/pTk/Xlib.t	Sun Dec 29 02:50:38 1996
@@ -180,11 +180,9 @@
 #ifndef XFreeFont
 VFUNC(int,XFreeFont,V_XFreeFont,_ANSI_ARGS_((Display *, XFontStruct *)))
 #endif
-#ifndef __WIN32__
 #ifndef XFreeFontNames
 VFUNC(int,XFreeFontNames,V_XFreeFontNames,_ANSI_ARGS_((char **)))
 #endif
-#endif /* !__WIN32__ */
 #ifndef XFreeGC
 VFUNC(int,XFreeGC,V_XFreeGC,_ANSI_ARGS_((Display *, GC)))
 #endif
@@ -258,11 +256,9 @@
 #ifndef XKeysymToString
 VFUNC(char *,XKeysymToString,V_XKeysymToString,_ANSI_ARGS_((KeySym)))
 #endif
-#ifndef __WIN32__
 #ifndef XListFonts
 VFUNC(char **,XListFonts,V_XListFonts,_ANSI_ARGS_(( Display*, const char *, int, int *)))
 #endif
-#endif /* !__WIN32__ */
 #ifndef XListHosts
 VFUNC(XHostAddress *,XListHosts,V_XListHosts,_ANSI_ARGS_((Display *, int *, int *)))
 #endif
diff -ru Tk401.000/tkGlue.c Tk401.000.my/tkGlue.c
--- Tk401.000/tkGlue.c	Sat Oct  5 02:13:52 1996
+++ Tk401.000.my/tkGlue.c	Sat Dec 28 20:16:04 1996
@@ -10,7 +10,7 @@
 
 #include <patchlevel.h>
 #if PATCHLEVEL > 3 || SUBVERSION >= 4
-#define Tkgv_fullname(x,y,z) gv_fullname(x,y,z)
+#define Tkgv_fullname(x,y,z) gv_fullname3(x,y,z)
 #else
 #define Tkgv_fullname(x,y,z) gv_fullname(x,y)
 #endif
