--- xemacs-21.5.27.20070507/src/chartab.c
+++ xemacs-21.5.27.20070507/src/chartab.c
@@ -1885,6 +1885,19 @@
   define_structure_type_keyword (st, Qdata, chartab_data_validate);
 }
 
+#ifdef __ia64__
+void
+structure_type_reinit_chartab (void)
+{
+  struct structure_type *st;
+
+  st = reinit_structure_type (Qchar_table, 0, chartab_instantiate);
+
+  reinit_structure_type_keyword (st, Qtype, chartab_type_validate);
+  reinit_structure_type_keyword (st, Qdata, chartab_data_validate);
+}
+#endif
+
 void
 complex_vars_of_chartab (void)
 {
--- xemacs-21.5.27.20070507/src/console-gtk.c
+++ xemacs-21.5.27.20070507/src/console-gtk.c
@@ -194,6 +194,14 @@
 {
   INITIALIZE_CONSOLE_TYPE (gtk, "gtk", "console-gtk-p");
 
+#ifdef __ia64__
+  console_type_reinit_gtk ();
+}
+
+void
+console_type_reinit_gtk (void)
+{
+#endif
   CONSOLE_HAS_METHOD (gtk, semi_canonicalize_console_connection);
   CONSOLE_HAS_METHOD (gtk, canonicalize_console_connection);
   CONSOLE_HAS_METHOD (gtk, semi_canonicalize_device_connection);
--- xemacs-21.5.27.20070507/src/console-msw.c
+++ xemacs-21.5.27.20070507/src/console-msw.c
@@ -732,6 +732,14 @@
 {
   INITIALIZE_CONSOLE_TYPE (mswindows, "mswindows", "console-mswindows-p");
 
+#ifdef __ia64__
+  console_type_reinit_mswindows ();
+}
+
+void
+console_type_reinit_mswindows (void)
+{
+#endif
   /* console methods */
 /*  CONSOLE_HAS_METHOD (mswindows, init_console); */
 /*  CONSOLE_HAS_METHOD (mswindows, mark_console); */
--- xemacs-21.5.27.20070507/src/console-stream.c
+++ xemacs-21.5.27.20070507/src/console-stream.c
@@ -318,6 +318,14 @@
 {
   INITIALIZE_CONSOLE_TYPE (stream, "stream", "console-stream-p");
 
+#ifdef __ia64__
+  console_type_reinit_stream ();
+}
+
+void
+console_type_reinit_stream (void)
+{
+#endif
   /* console methods */
   CONSOLE_HAS_METHOD (stream, init_console);
   CONSOLE_HAS_METHOD (stream, initially_selected_for_input);
--- xemacs-21.5.27.20070507/src/console-tty.c
+++ xemacs-21.5.27.20070507/src/console-tty.c
@@ -489,6 +489,14 @@
 {
   INITIALIZE_CONSOLE_TYPE (tty, "tty", "console-tty-p");
 
+#ifdef __ia64__
+  console_type_reinit_tty ();
+}
+
+void
+console_type_reinit_tty (void)
+{
+#endif
   /* console methods */
   CONSOLE_HAS_METHOD (tty, init_console);
   CONSOLE_HAS_METHOD (tty, mark_console);
--- xemacs-21.5.27.20070507/src/console-x.c
+++ xemacs-21.5.27.20070507/src/console-x.c
@@ -392,6 +392,14 @@
 {
   INITIALIZE_CONSOLE_TYPE (x, "x", "console-x-p");
 
+#ifdef __ia64__
+  console_type_reinit_x ();
+}
+
+void
+console_type_reinit_x (void)
+{
+#endif
   CONSOLE_HAS_METHOD (x, semi_canonicalize_console_connection);
   CONSOLE_HAS_METHOD (x, canonicalize_console_connection);
   CONSOLE_HAS_METHOD (x, semi_canonicalize_device_connection);
--- xemacs-21.5.27.20070507/src/device-gtk.c
+++ xemacs-21.5.27.20070507/src/device-gtk.c
@@ -718,6 +718,14 @@
 void
 console_type_create_device_gtk (void)
 {
+#ifdef __ia64__
+  console_type_reinit_device_gtk ();
+}
+
+void
+console_type_reinit_device_gtk (void)
+{
+#endif
   CONSOLE_HAS_METHOD (gtk, init_device);
   CONSOLE_HAS_METHOD (gtk, finish_init_device);
   CONSOLE_HAS_METHOD (gtk, mark_device);
--- xemacs-21.5.27.20070507/src/device-msw.c
+++ xemacs-21.5.27.20070507/src/device-msw.c
@@ -1404,6 +1404,14 @@
 void
 console_type_create_device_mswindows (void)
 {
+#ifdef __ia64__
+  console_type_reinit_device_mswindows ();
+}
+
+void
+console_type_reinit_device_mswindows (void)
+{
+#endif
   CONSOLE_HAS_METHOD (mswindows, init_device);
   CONSOLE_HAS_METHOD (mswindows, finish_init_device);
   CONSOLE_HAS_METHOD (mswindows, mark_device);
--- xemacs-21.5.27.20070507/src/device-tty.c
+++ xemacs-21.5.27.20070507/src/device-tty.c
@@ -218,6 +218,14 @@
 void
 console_type_create_device_tty (void)
 {
+#ifdef __ia64__
+  console_type_reinit_device_tty ();
+}
+
+void
+console_type_reinit_device_tty (void)
+{
+#endif
   /* device methods */
   CONSOLE_HAS_METHOD (tty, init_device);
 #ifndef NEW_GC
--- xemacs-21.5.27.20070507/src/device-x.c
+++ xemacs-21.5.27.20070507/src/device-x.c
@@ -2153,6 +2153,15 @@
 console_type_create_device_x (void)
 {
   reinit_console_type_create_device_x ();
+
+#ifdef __ia64__
+  console_type_reinit_device_x ();
+}
+
+void
+console_type_reinit_device_x (void)
+{
+#endif
   CONSOLE_HAS_METHOD (x, init_device);
   CONSOLE_HAS_METHOD (x, finish_init_device);
   CONSOLE_HAS_METHOD (x, mark_device);
--- xemacs-21.5.27.20070507/src/dialog-gtk.c
+++ xemacs-21.5.27.20070507/src/dialog-gtk.c
@@ -54,6 +54,14 @@
 void
 console_type_create_dialog_gtk (void)
 {
+#ifdef __ia64__
+  console_type_reinit_dialog_gtk ();
+}
+
+void
+console_type_reinit_dialog_gtk (void)
+{
+#endif
   CONSOLE_HAS_METHOD (gtk, make_dialog_box_internal);
 }
 
--- xemacs-21.5.27.20070507/src/dialog-msw.c
+++ xemacs-21.5.27.20070507/src/dialog-msw.c
@@ -808,6 +808,14 @@
 void
 console_type_create_dialog_mswindows (void)
 {
+#ifdef __ia64__
+  console_type_reinit_dialog_mswindows ();
+}
+
+void
+console_type_reinit_dialog_mswindows (void)
+{
+#endif
   CONSOLE_HAS_METHOD (mswindows, make_dialog_box_internal);
 }
 
--- xemacs-21.5.27.20070507/src/dialog-x.c
+++ xemacs-21.5.27.20070507/src/dialog-x.c
@@ -302,6 +302,14 @@
 void
 console_type_create_dialog_x (void)
 {
+#ifdef __ia64__
+  console_type_reinit_dialog_x ();
+}
+
+void
+console_type_reinit_dialog_x (void)
+{
+#endif
   CONSOLE_HAS_METHOD (x, make_dialog_box_internal);
 }
 
--- xemacs-21.5.27.20070507/src/elhash.c
+++ xemacs-21.5.27.20070507/src/elhash.c
@@ -916,6 +916,30 @@
   structure_type_create_hash_table_structure_name (Qhashtable); /* compat */
 }
 
+#ifdef __ia64__
+static void
+structure_type_reinit_hash_table_structure_name (Lisp_Object structure_name)
+{
+  struct structure_type *st;
+
+  st = reinit_structure_type (structure_name, 0, hash_table_instantiate);
+  reinit_structure_type_keyword (st, Qtest, hash_table_test_validate);
+  reinit_structure_type_keyword (st, Qsize, hash_table_size_validate);
+  reinit_structure_type_keyword (st, Qrehash_size, hash_table_rehash_size_validate);
+  reinit_structure_type_keyword (st, Qrehash_threshold, hash_table_rehash_threshold_validate);
+  reinit_structure_type_keyword (st, Qweakness, hash_table_weakness_validate);
+  reinit_structure_type_keyword (st, Qdata, hash_table_data_validate);
+
+  reinit_structure_type_keyword (st, Qtype, hash_table_weakness_validate);
+}
+
+void
+structure_type_reinit_hash_table (void)
+{
+  structure_type_reinit_hash_table_structure_name (Qhash_table);
+  structure_type_reinit_hash_table_structure_name (Qhashtable); /* compat */
+}
+#endif
 
 /************************************************************************/
 /*		Definition of Lisp-visible methods			*/
--- xemacs-21.5.27.20070507/src/emacs.c
+++ xemacs-21.5.27.20070507/src/emacs.c
@@ -2501,6 +2501,136 @@
 	 non-initialized case. */
       inhibit_non_essential_conversion_operations = 0;
 
+#ifdef __ia64__
+      /* Reinitialize all function pointers.  */
+      console_type_reinit_stream ();
+
+#ifdef HAVE_TTY
+      console_type_reinit_tty ();
+      console_type_reinit_device_tty ();
+      console_type_reinit_frame_tty ();
+      console_type_reinit_objects_tty ();
+      console_type_reinit_redisplay_tty ();
+#endif
+#ifdef HAVE_GTK
+      console_type_reinit_gtk ();
+      console_type_reinit_select_gtk ();
+      console_type_reinit_device_gtk ();
+      console_type_reinit_dialog_gtk ();
+      console_type_reinit_frame_gtk ();
+      console_type_reinit_objects_gtk ();
+      console_type_reinit_glyphs_gtk ();
+      console_type_reinit_redisplay_gtk ();
+#ifdef HAVE_MENUBARS
+      console_type_reinit_menubar_gtk ();
+#endif
+#ifdef HAVE_SCROLLBARS
+      console_type_reinit_scrollbar_gtk ();
+#endif
+#ifdef HAVE_TOOLBARS
+      console_type_reinit_toolbar_gtk ();
+#endif
+#endif
+#ifdef HAVE_X_WINDOWS
+      console_type_reinit_x ();
+      console_type_reinit_device_x ();
+      console_type_reinit_frame_x ();
+      console_type_reinit_glyphs_x ();
+      console_type_reinit_select_x ();
+#ifdef HAVE_MENUBARS
+      console_type_reinit_menubar_x ();
+#endif
+      console_type_reinit_objects_x ();
+      console_type_reinit_redisplay_x ();
+#ifdef HAVE_SCROLLBARS
+      console_type_reinit_scrollbar_x ();
+#endif
+#ifdef HAVE_TOOLBARS
+      console_type_reinit_toolbar_x ();
+#endif
+#ifdef HAVE_DIALOGS
+      console_type_reinit_dialog_x ();
+#endif
+#endif /* HAVE_X_WINDOWS */
+
+#ifdef HAVE_MS_WINDOWS
+      console_type_reinit_mswindows ();
+      console_type_reinit_device_mswindows ();
+      console_type_reinit_frame_mswindows ();
+      console_type_reinit_objects_mswindows ();
+      console_type_reinit_redisplay_mswindows ();
+      console_type_reinit_glyphs_mswindows ();
+# ifdef HAVE_SCROLLBARS
+      console_type_reinit_scrollbar_mswindows ();
+# endif
+#ifdef HAVE_MENUBARS
+      console_type_reinit_menubar_mswindows ();
+#endif
+#ifdef HAVE_TOOLBARS
+      console_type_reinit_toolbar_mswindows ();
+#endif
+#ifdef HAVE_DIALOGS
+      console_type_reinit_dialog_mswindows ();
+#endif
+#endif
+
+      specifier_type_reinit ();
+
+      specifier_type_reinit_image ();
+      specifier_type_reinit_gutter ();
+      specifier_type_reinit_objects ();
+#ifdef HAVE_TOOLBARS
+      specifier_type_reinit_toolbar ();
+#endif
+
+      structure_type_reinit_chartab ();
+      structure_type_reinit_faces ();
+      structure_type_reinit_rangetab ();
+      structure_type_reinit_hash_table ();
+
+      image_instantiator_format_reinit ();
+      image_instantiator_format_reinit_glyphs_eimage ();
+      image_instantiator_format_reinit_glyphs_widget ();
+#ifdef HAVE_GTK
+      image_instantiator_format_reinit_glyphs_gtk ();
+#endif
+#ifdef HAVE_X_WINDOWS
+      image_instantiator_format_reinit_glyphs_x ();
+#endif /* HAVE_X_WINDOWS */
+#ifdef HAVE_MS_WINDOWS
+      image_instantiator_format_reinit_glyphs_mswindows ();
+#endif /* HAVE_MSWINDOWS_WINDOWS */
+
+      lstream_type_reinit ();
+#ifdef FILE_CODING
+      lstream_type_reinit_file_coding ();
+#endif
+#if defined (HAVE_MS_WINDOWS) && !defined(HAVE_MSG_SELECT)
+      lstream_type_reinit_mswindows_selectable ();
+#endif
+
+#ifdef HAVE_UNIX_PROCESSES
+      process_type_reinit_unix ();
+#endif
+#ifdef HAVE_WIN32_PROCESSES
+      process_type_reinit_nt ();
+#endif
+
+      specifier_reinit_glyphs ();
+      specifier_reinit_gutter ();
+#ifdef HAVE_MENUBARS
+      specifier_reinit_menubar ();
+#endif
+      specifier_reinit_redisplay ();
+#ifdef HAVE_SCROLLBARS
+      specifier_reinit_scrollbar ();
+#endif
+#ifdef HAVE_TOOLBARS
+      specifier_reinit_toolbar ();
+#endif
+      specifier_reinit_window ();
+#endif /* __ia64__ */
+
 #ifdef PDUMP
       if (!restart)	      /* after successful pdump_load()
 				 (note, we are inside ifdef PDUMP) */
--- xemacs-21.5.27.20070507/src/event-msw.c
+++ xemacs-21.5.27.20070507/src/event-msw.c
@@ -5155,6 +5155,14 @@
 void
 lstream_type_create_mswindows_selectable (void)
 {
+#ifdef __ia64__
+  lstream_type_reinit_mswindows_selectable ();
+}
+
+void
+lstream_type_reinit_mswindows_selectable (void);
+}
+#endif
 #ifndef CYGWIN
   init_slurp_stream ();
   init_shove_stream ();
--- xemacs-21.5.27.20070507/src/faces.c
+++ xemacs-21.5.27.20070507/src/faces.c
@@ -2149,6 +2149,18 @@
   define_structure_type_keyword (st, Qname, face_name_validate);
 }
 
+#ifdef __ia64__
+void
+structure_type_reinit_faces (void)
+{
+  struct structure_type *st;
+
+  st = reinit_structure_type (Qface, face_validate, face_instantiate);
+
+  reinit_structure_type_keyword (st, Qname, face_name_validate);
+}
+#endif
+
 void
 vars_of_faces (void)
 {
--- xemacs-21.5.27.20070507/src/file-coding.c
+++ xemacs-21.5.27.20070507/src/file-coding.c
@@ -4465,6 +4465,14 @@
 void
 lstream_type_create_file_coding (void)
 {
+#ifdef __ia64__
+  lstream_type_reinit_file_coding ();
+}
+
+void
+lstream_type_reinit_file_coding (void)
+{
+#endif
   LSTREAM_HAS_METHOD (coding, reader);
   LSTREAM_HAS_METHOD (coding, writer);
   LSTREAM_HAS_METHOD (coding, rewinder);
--- xemacs-21.5.27.20070507/src/frame-gtk.c
+++ xemacs-21.5.27.20070507/src/frame-gtk.c
@@ -1496,6 +1496,14 @@
 void
 console_type_create_frame_gtk (void)
 {
+#ifdef __ia64__
+  console_type_reinit_frame_gtk ();
+}
+
+void
+console_type_reinit_frame_gtk (void)
+{
+#endif
   /* frame methods */
   CONSOLE_HAS_METHOD (gtk, init_frame_1);
   CONSOLE_HAS_METHOD (gtk, init_frame_2);
--- xemacs-21.5.27.20070507/src/frame-msw.c
+++ xemacs-21.5.27.20070507/src/frame-msw.c
@@ -1152,6 +1152,14 @@
 void
 console_type_create_frame_mswindows (void)
 {
+#ifdef __ia64__
+  console_type_reinit_frame_mswindows ();
+}
+
+void
+console_type_reinit_frame_mswindows (void)
+{
+#endif
   /* Display frames */
   CONSOLE_HAS_METHOD (mswindows, init_frame_1);
   CONSOLE_HAS_METHOD (mswindows, init_frame_2);
--- xemacs-21.5.27.20070507/src/frame-tty.c
+++ xemacs-21.5.27.20070507/src/frame-tty.c
@@ -217,6 +217,14 @@
 void
 console_type_create_frame_tty (void)
 {
+#ifdef __ia64__
+  console_type_reinit_frame_tty ();
+}
+
+void
+console_type_reinit_frame_tty (void)
+{
+#endif
   CONSOLE_HAS_METHOD (tty, init_frame_1);
   CONSOLE_HAS_METHOD (tty, init_frame_3);
   CONSOLE_HAS_METHOD (tty, after_init_frame);
--- xemacs-21.5.27.20070507/src/frame-x.c
+++ xemacs-21.5.27.20070507/src/frame-x.c
@@ -2815,6 +2815,14 @@
 void
 console_type_create_frame_x (void)
 {
+#ifdef __ia64__
+  console_type_reinit_frame_x ();
+}
+
+void
+console_type_reinit_frame_x (void)
+{
+#endif
   /* frame methods */
   CONSOLE_HAS_METHOD (x, init_frame_1);
   CONSOLE_HAS_METHOD (x, init_frame_2);
--- xemacs-21.5.27.20070507/src/glyphs-eimage.c
+++ xemacs-21.5.27.20070507/src/glyphs-eimage.c
@@ -1419,8 +1419,54 @@
   IIFORMAT_VALID_KEYWORD (tiff, Q_data, check_valid_string);
   IIFORMAT_VALID_KEYWORD (tiff, Q_file, check_valid_string);
 #endif
+}
+
+#ifdef __ia64__
+void
+image_instantiator_format_reinit_glyphs_eimage (void)
+{
+  /* image-instantiator types */
+#ifdef HAVE_JPEG
+  IIFORMAT_HAS_METHOD (jpeg, validate);
+  IIFORMAT_HAS_METHOD (jpeg, normalize);
+  IIFORMAT_HAS_METHOD (jpeg, possible_dest_types);
+  IIFORMAT_HAS_METHOD (jpeg, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (jpeg, Q_data, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (jpeg, Q_file, check_valid_string);
+#endif
+
+#ifdef HAVE_GIF
+  IIFORMAT_HAS_METHOD (gif, validate);
+  IIFORMAT_HAS_METHOD (gif, normalize);
+  IIFORMAT_HAS_METHOD (gif, possible_dest_types);
+  IIFORMAT_HAS_METHOD (gif, instantiate);
 
+  IIFORMAT_REINIT_KEYWORD (gif, Q_data, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (gif, Q_file, check_valid_string);
+#endif
+
+#ifdef HAVE_PNG
+  IIFORMAT_HAS_METHOD (png, validate);
+  IIFORMAT_HAS_METHOD (png, normalize);
+  IIFORMAT_HAS_METHOD (png, possible_dest_types);
+  IIFORMAT_HAS_METHOD (png, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (png, Q_data, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (png, Q_file, check_valid_string);
+#endif
+
+#ifdef HAVE_TIFF
+  IIFORMAT_HAS_METHOD (tiff, validate);
+  IIFORMAT_HAS_METHOD (tiff, normalize);
+  IIFORMAT_HAS_METHOD (tiff, possible_dest_types);
+  IIFORMAT_HAS_METHOD (tiff, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (tiff, Q_data, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (tiff, Q_file, check_valid_string);
+#endif
 }
+#endif /* __ia64__ */
 
 void
 vars_of_glyphs_eimage (void)
--- xemacs-21.5.27.20070507/src/glyphs-gtk.c
+++ xemacs-21.5.27.20070507/src/glyphs-gtk.c
@@ -2776,6 +2776,14 @@
 void
 console_type_create_glyphs_gtk (void)
 {
+#ifdef __ia64__
+  console_type_reinit_glyphs_gtk ();
+}
+
+void
+console_type_reinit_glyphs_gtk (void)
+{
+#endif
   /* image methods */
   CONSOLE_HAS_METHOD (gtk, print_image_instance);
   CONSOLE_HAS_METHOD (gtk, finalize_image_instance);
@@ -2916,6 +2924,78 @@
   IIFORMAT_VALID_KEYWORD (autodetect, Q_data, check_valid_string);
 }
 
+#ifdef __ia64__
+void
+image_instantiator_format_reinit_glyphs_gtk (void)
+{
+#ifdef HAVE_XPM
+  IIFORMAT_HAS_DEVMETHOD (gtk, xpm, instantiate);
+#endif
+
+  IIFORMAT_HAS_DEVMETHOD (gtk, subwindow, instantiate);
+
+#ifdef HAVE_WIDGETS
+  IIFORMAT_HAS_DEVMETHOD (gtk, native_layout, instantiate);
+
+  IIFORMAT_HAS_DEVMETHOD (gtk, button, property);
+  IIFORMAT_HAS_DEVMETHOD (gtk, button, instantiate);
+  IIFORMAT_HAS_DEVMETHOD (gtk, button, redisplay);
+  IIFORMAT_HAS_DEVMETHOD (gtk, widget, property);
+
+  IIFORMAT_HAS_DEVMETHOD (gtk, progress_gauge, redisplay);
+  IIFORMAT_HAS_DEVMETHOD (gtk, progress_gauge, instantiate);
+  IIFORMAT_HAS_DEVMETHOD (gtk, edit_field, instantiate);
+  IIFORMAT_HAS_DEVMETHOD (gtk, combo_box, instantiate);
+  IIFORMAT_HAS_SHARED_DEVMETHOD (gtk, combo_box, redisplay, tab_control);
+  IIFORMAT_HAS_DEVMETHOD (gtk, tab_control, instantiate);
+  IIFORMAT_HAS_DEVMETHOD (gtk, tab_control, redisplay);
+  IIFORMAT_HAS_DEVMETHOD (gtk, label, instantiate);
+#endif
+
+  IIFORMAT_HAS_METHOD (cursor_font, validate);
+  IIFORMAT_HAS_METHOD (cursor_font, possible_dest_types);
+  IIFORMAT_HAS_METHOD (cursor_font, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (cursor_font, Q_data, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (cursor_font, Q_foreground, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (cursor_font, Q_background, check_valid_string);
+
+  IIFORMAT_HAS_METHOD (font, validate);
+  IIFORMAT_HAS_METHOD (font, possible_dest_types);
+  IIFORMAT_HAS_METHOD (font, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (font, Q_data, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (font, Q_foreground, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (font, Q_background, check_valid_string);
+
+#ifdef HAVE_XPM
+  IIFORMAT_HAS_DEVMETHOD (gtk, xpm, instantiate);
+#endif
+
+#ifdef HAVE_XFACE
+  IIFORMAT_HAS_DEVMETHOD (gtk, xface, instantiate);
+#endif
+
+  IIFORMAT_HAS_DEVMETHOD (gtk, xbm, instantiate);
+
+  IIFORMAT_HAS_METHOD (gtk_resource, validate);
+  IIFORMAT_HAS_METHOD (gtk_resource, normalize);
+  IIFORMAT_HAS_METHOD (gtk_resource, possible_dest_types);
+  IIFORMAT_HAS_METHOD (gtk_resource, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (gtk_resource, Q_resource_type, check_valid_resource_symbol);
+  IIFORMAT_REINIT_KEYWORD (gtk_resource, Q_resource_id, check_valid_resource_id);
+  IIFORMAT_REINIT_KEYWORD (gtk_resource, Q_file, check_valid_string);
+
+  IIFORMAT_HAS_METHOD (autodetect, validate);
+  IIFORMAT_HAS_METHOD (autodetect, normalize);
+  IIFORMAT_HAS_METHOD (autodetect, possible_dest_types);
+  IIFORMAT_HAS_METHOD (autodetect, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (autodetect, Q_data, check_valid_string);
+}
+#endif
+
 void
 vars_of_glyphs_gtk (void)
 {
--- xemacs-21.5.27.20070507/src/glyphs-msw.c
+++ xemacs-21.5.27.20070507/src/glyphs-msw.c
@@ -2952,6 +2952,14 @@
 void
 console_type_create_glyphs_mswindows (void)
 {
+#ifdef __ia64__
+  console_type_reinit_glyphs_mswindows ();
+}
+
+void
+console_type_reinit_glyphs_mswindows (void)
+{
+#endif
   /* image methods - display */
   CONSOLE_HAS_METHOD (mswindows, print_image_instance);
   CONSOLE_HAS_METHOD (mswindows, finalize_image_instance);
@@ -3083,6 +3091,32 @@
   IIFORMAT_VALID_CONSOLE2 (mswindows, msprinter, mswindows_resource);
 }
 
+#ifdef __ia64__
+void
+image_instantiator_format_reinit_glyphs_mswindows (void)
+{
+  /* image-instantiator types */
+
+  IIFORMAT_HAS_METHOD (bmp, validate);
+  IIFORMAT_HAS_METHOD (bmp, normalize);
+  IIFORMAT_HAS_METHOD (bmp, possible_dest_types);
+  IIFORMAT_HAS_METHOD (bmp, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (bmp, Q_data, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (bmp, Q_file, check_valid_string);
+
+  IIFORMAT_HAS_METHOD (mswindows_resource, validate);
+  IIFORMAT_HAS_METHOD (mswindows_resource, normalize);
+  IIFORMAT_HAS_METHOD (mswindows_resource, possible_dest_types);
+  IIFORMAT_HAS_METHOD (mswindows_resource, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (mswindows_resource, Q_resource_type, 
+			  check_valid_resource_symbol);
+  IIFORMAT_REINIT_KEYWORD (mswindows_resource, Q_resource_id, check_valid_resource_id);
+  IIFORMAT_REINIT_KEYWORD (mswindows_resource, Q_file, check_valid_string);
+}
+#endif /* __ia64__ */
+
 void
 vars_of_glyphs_mswindows (void)
 {
--- xemacs-21.5.27.20070507/src/glyphs-widget.c
+++ xemacs-21.5.27.20070507/src/glyphs-widget.c
@@ -1746,10 +1746,58 @@
   IIFORMAT_VALID_KEYWORD (type, Q_face, check_valid_face);		      \
 } while (0)
 
+#ifdef __ia64__
+#define REINIT_GUI_KEYWORDS(type) do {					\
+  IIFORMAT_REINIT_KEYWORD (type, Q_active, check_valid_anything);	\
+  IIFORMAT_REINIT_KEYWORD (type, Q_suffix, check_valid_anything);	\
+  IIFORMAT_REINIT_KEYWORD (type, Q_keys, check_valid_string);		\
+  IIFORMAT_REINIT_KEYWORD (type, Q_style, check_valid_symbol);		\
+  IIFORMAT_REINIT_KEYWORD (type, Q_selected, check_valid_anything);	\
+  IIFORMAT_REINIT_KEYWORD (type, Q_filter, check_valid_anything);	\
+  IIFORMAT_REINIT_KEYWORD (type, Q_config, check_valid_symbol);		\
+  IIFORMAT_REINIT_KEYWORD (type, Q_included, check_valid_anything);	\
+  IIFORMAT_REINIT_KEYWORD (type, Q_initial_focus, check_valid_anything); \
+  IIFORMAT_REINIT_KEYWORD (type, Q_key_sequence, check_valid_string);	\
+  IIFORMAT_REINIT_KEYWORD (type, Q_accelerator, check_valid_string);	\
+  IIFORMAT_REINIT_KEYWORD (type, Q_label, check_valid_anything);	\
+  IIFORMAT_REINIT_KEYWORD (type, Q_callback, check_valid_callback);	\
+  IIFORMAT_REINIT_KEYWORD (type, Q_callback_ex, check_valid_callback);	\
+  IIFORMAT_REINIT_KEYWORD (type, Q_descriptor,				\
+			   check_valid_string_or_vector);		\
+} while (0)
+
+#define REINIT_WIDGET_KEYWORDS(type) do {				\
+  IIFORMAT_REINIT_KEYWORD (type, Q_width, check_valid_int);		\
+  IIFORMAT_REINIT_KEYWORD (type, Q_height, check_valid_int);		\
+  IIFORMAT_REINIT_KEYWORD (type, Q_pixel_width, check_valid_int_or_function); \
+  IIFORMAT_REINIT_KEYWORD (type, Q_pixel_height, check_valid_int_or_function); \
+  IIFORMAT_REINIT_KEYWORD (type, Q_face, check_valid_face);		\
+} while (0)
+
+static void image_instantiator_reinit_widget (void);
+static void image_instantiator_reinit_buttons (void);
+static void image_instantiator_reinit_edit_fields (void);
+static void image_instantiator_reinit_combo_box (void);
+static void image_instantiator_reinit_scrollbar (void);
+static void image_instantiator_reinit_progress_guage (void);
+static void image_instantiator_reinit_tree_view (void);
+static void image_instantiator_reinit_tab_control (void);
+static void image_instantiator_reinit_labels (void);
+static void image_instantiator_reinit_layout (void);
+static void image_instantiator_reinit_native_layout (void);
+#endif
 
 static void image_instantiator_widget (void)
 { /* we only do this for properties */
   INITIALIZE_IMAGE_INSTANTIATOR_FORMAT_NO_SYM (widget, "widget");
+#ifdef __ia64__
+  image_instantiator_reinit_widget ();
+}
+
+static void
+image_instantiator_reinit_widget (void)
+{
+#endif
   IIFORMAT_HAS_METHOD (widget, property);
   IIFORMAT_HAS_METHOD (widget, update);
   IIFORMAT_HAS_METHOD (widget, query_geometry);
@@ -1772,6 +1820,24 @@
   VALID_GUI_KEYWORDS (button);
 }
 
+#ifdef __ia64__
+static void
+image_instantiator_reinit_buttons (void)
+{
+  IIFORMAT_HAS_SHARED_METHOD (button, validate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (button, possible_dest_types, widget);
+  IIFORMAT_HAS_SHARED_METHOD (button, instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (button, post_instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (button, normalize, widget);
+  IIFORMAT_HAS_SHARED_METHOD (button, governing_domain, subwindow);
+  IIFORMAT_HAS_METHOD (button, query_geometry);
+  IIFORMAT_REINIT_KEYWORD (button,
+			   Q_image, check_valid_instantiator);
+  REINIT_WIDGET_KEYWORDS (button);
+  REINIT_GUI_KEYWORDS (button);
+}
+#endif
+
 static void image_instantiator_edit_fields (void)
 {
   INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (edit_field, "edit-field");
@@ -1785,6 +1851,20 @@
   VALID_GUI_KEYWORDS (edit_field);
 }
 
+#ifdef __ia64__
+static void
+image_instantiator_reinit_edit_fields (void)
+{
+  IIFORMAT_HAS_SHARED_METHOD (edit_field, validate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (edit_field, possible_dest_types, widget);
+  IIFORMAT_HAS_SHARED_METHOD (edit_field, instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (edit_field, post_instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (edit_field, governing_domain, subwindow);
+  REINIT_WIDGET_KEYWORDS (edit_field);
+  REINIT_GUI_KEYWORDS (edit_field);
+}
+#endif
+
 static void image_instantiator_combo_box (void)
 {
   INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (combo_box, "combo-box");
@@ -1802,6 +1882,25 @@
   IIFORMAT_VALID_KEYWORD (combo_box, Q_items, check_valid_item_list);
 }
 
+#ifdef __ia64__
+static void
+image_instantiator_reinit_combo_box (void)
+{
+  IIFORMAT_HAS_METHOD (combo_box, validate);
+  IIFORMAT_HAS_SHARED_METHOD (combo_box, possible_dest_types, widget);
+  IIFORMAT_HAS_SHARED_METHOD (combo_box, governing_domain, subwindow);
+
+  REINIT_GUI_KEYWORDS (combo_box);
+
+  IIFORMAT_REINIT_KEYWORD (combo_box, Q_width, check_valid_int);
+  IIFORMAT_REINIT_KEYWORD (combo_box, Q_height, check_valid_int);
+  IIFORMAT_REINIT_KEYWORD (combo_box, Q_pixel_width,
+			   check_valid_int_or_function);
+  IIFORMAT_REINIT_KEYWORD (combo_box, Q_face, check_valid_face);
+  IIFORMAT_REINIT_KEYWORD (combo_box, Q_items, check_valid_item_list);
+}
+#endif
+
 static void image_instantiator_scrollbar (void)
 {
   INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (scrollbar, "scrollbar");
@@ -1819,6 +1918,25 @@
   IIFORMAT_VALID_KEYWORD (scrollbar, Q_face, check_valid_face);
 }
 
+#ifdef __ia64__
+static void
+image_instantiator_reinit_scrollbar (void)
+{
+  IIFORMAT_HAS_SHARED_METHOD (scrollbar, validate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (scrollbar, possible_dest_types, widget);
+  IIFORMAT_HAS_SHARED_METHOD (scrollbar, instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (scrollbar, post_instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (scrollbar, governing_domain, subwindow);
+  REINIT_GUI_KEYWORDS (scrollbar);
+
+  IIFORMAT_REINIT_KEYWORD (scrollbar, Q_pixel_width,
+			   check_valid_int_or_function);
+  IIFORMAT_REINIT_KEYWORD (scrollbar, Q_pixel_height,
+			   check_valid_int_or_function);
+  IIFORMAT_REINIT_KEYWORD (scrollbar, Q_face, check_valid_face);
+}
+#endif
+
 static void image_instantiator_progress_gauge (void)
 {
   INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (progress_gauge, "progress-gauge");
@@ -1833,6 +1951,22 @@
   IIFORMAT_VALID_KEYWORD (progress_gauge, Q_value, check_valid_int);
 }
 
+#ifdef __ia64__
+static void
+image_instantiator_reinit_progress_guage (void)
+{
+  IIFORMAT_HAS_SHARED_METHOD (progress_gauge, validate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (progress_gauge, possible_dest_types, widget);
+  IIFORMAT_HAS_SHARED_METHOD (progress_gauge, instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (progress_gauge, post_instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (progress_gauge, governing_domain, subwindow);
+  REINIT_WIDGET_KEYWORDS (progress_gauge);
+  REINIT_GUI_KEYWORDS (progress_gauge);
+
+  IIFORMAT_REINIT_KEYWORD (progress_gauge, Q_value, check_valid_int);
+}
+#endif
+
 static void image_instantiator_tree_view (void)
 {
   INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (tree_view, "tree-view");
@@ -1847,6 +1981,22 @@
   IIFORMAT_VALID_KEYWORD (tree_view, Q_items, check_valid_item_list);
 }
 
+#ifdef __ia64__
+static void
+image_instantiator_reinit_tree_view (void)
+{
+  IIFORMAT_HAS_SHARED_METHOD (tree_view, validate, combo_box);
+  IIFORMAT_HAS_SHARED_METHOD (tree_view, possible_dest_types, widget);
+  IIFORMAT_HAS_SHARED_METHOD (tree_view, instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (tree_view, post_instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (tree_view, governing_domain, subwindow);
+  IIFORMAT_HAS_METHOD (tree_view, query_geometry);
+  REINIT_WIDGET_KEYWORDS (tree_view);
+  REINIT_GUI_KEYWORDS (tree_view);
+  IIFORMAT_REINIT_KEYWORD (tree_view, Q_items, check_valid_item_list);
+}
+#endif
+
 static void image_instantiator_tab_control (void)
 {
   INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (tab_control, "tab-control");
@@ -1863,6 +2013,24 @@
   IIFORMAT_VALID_KEYWORD (tab_control, Q_items, check_valid_item_list);
 }
 
+#ifdef __ia64__
+static void
+image_instantiator_reinit_tab_control (void)
+{
+  IIFORMAT_HAS_SHARED_METHOD (tab_control, validate, combo_box);
+  IIFORMAT_HAS_SHARED_METHOD (tab_control, possible_dest_types, widget);
+  IIFORMAT_HAS_SHARED_METHOD (tab_control, instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (tab_control, post_instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (tab_control, governing_domain, subwindow);
+  IIFORMAT_HAS_METHOD (tab_control, query_geometry);
+  REINIT_WIDGET_KEYWORDS (tab_control);
+  REINIT_GUI_KEYWORDS (tab_control);
+  IIFORMAT_REINIT_KEYWORD (tab_control, Q_orientation,
+			   check_valid_tab_orientation);
+  IIFORMAT_REINIT_KEYWORD (tab_control, Q_items, check_valid_item_list);
+}
+#endif
+
 static void image_instantiator_labels (void)
 {
   INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (label, "label");
@@ -1874,6 +2042,19 @@
   IIFORMAT_VALID_KEYWORD (label, Q_descriptor, check_valid_string);
 }
 
+#ifdef __ia64__
+static void
+image_instantiator_reinit_labels (void)
+{
+  IIFORMAT_HAS_SHARED_METHOD (label, possible_dest_types, widget);
+  IIFORMAT_HAS_SHARED_METHOD (label, instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (label, post_instantiate, widget);
+  IIFORMAT_HAS_SHARED_METHOD (label, governing_domain, subwindow);
+  REINIT_WIDGET_KEYWORDS (label);
+  IIFORMAT_REINIT_KEYWORD (label, Q_descriptor, check_valid_string);
+}
+#endif
+
 #define VALID_LAYOUT_KEYWORDS(layout)					   \
   VALID_WIDGET_KEYWORDS (layout);					   \
   IIFORMAT_VALID_KEYWORD (layout, Q_orientation, check_valid_orientation); \
@@ -1885,6 +2066,17 @@
   IIFORMAT_VALID_KEYWORD (layout, Q_items,				   \
 			  check_valid_instantiator_list)
 
+#ifdef __ia64__
+#define REINIT_LAYOUT_KEYWORDS(layout)					    \
+  REINIT_WIDGET_KEYWORDS (layout);					    \
+  IIFORMAT_REINIT_KEYWORD (layout, Q_orientation, check_valid_orientation); \
+  IIFORMAT_REINIT_KEYWORD (layout, Q_justify, check_valid_justification);   \
+  IIFORMAT_REINIT_KEYWORD (layout, Q_border, check_valid_border);	    \
+  IIFORMAT_REINIT_KEYWORD (layout, Q_margin_width, check_valid_int);	    \
+  IIFORMAT_REINIT_KEYWORD (layout, Q_items,				    \
+			   check_valid_instantiator_list)
+#endif
+
 static void image_instantiator_layout (void)
 {
   INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (layout, "layout");
@@ -1902,6 +2094,25 @@
   VALID_LAYOUT_KEYWORDS (layout);
 }
 
+#ifdef __ia64__
+static void
+image_instantiator_reinit_layout (void)
+{
+  IIFORMAT_HAS_SHARED_METHOD (layout, possible_dest_types, widget);
+  IIFORMAT_HAS_METHOD (layout, instantiate);
+  IIFORMAT_HAS_METHOD (layout, post_instantiate);
+  IIFORMAT_HAS_SHARED_METHOD (layout, governing_domain, subwindow);
+  IIFORMAT_HAS_METHOD (layout, normalize);
+  IIFORMAT_HAS_METHOD (layout, query_geometry);
+  IIFORMAT_HAS_METHOD (layout, layout);
+  IIFORMAT_HAS_METHOD (layout, update);
+  IIFORMAT_HAS_METHOD (layout, property);
+
+  REINIT_GUI_KEYWORDS (layout);
+  REINIT_LAYOUT_KEYWORDS (layout);
+}
+#endif
+
 static void image_instantiator_native_layout (void)
 {
   INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (native_layout, "native-layout");
@@ -1919,6 +2130,25 @@
   VALID_LAYOUT_KEYWORDS (native_layout);
 }
 
+#ifdef __ia64__
+static void
+image_instantiator_reinit_native_layout (void)
+{
+  IIFORMAT_HAS_SHARED_METHOD (native_layout, possible_dest_types, widget);
+  IIFORMAT_HAS_SHARED_METHOD (native_layout, instantiate, layout);
+  IIFORMAT_HAS_SHARED_METHOD (native_layout, post_instantiate, layout);
+  IIFORMAT_HAS_METHOD (native_layout, layout);
+  IIFORMAT_HAS_SHARED_METHOD (native_layout, governing_domain, subwindow);
+  IIFORMAT_HAS_SHARED_METHOD (native_layout, normalize, layout);
+  IIFORMAT_HAS_SHARED_METHOD (native_layout, query_geometry, layout);
+  IIFORMAT_HAS_SHARED_METHOD (native_layout, layout, layout);
+  IIFORMAT_HAS_SHARED_METHOD (native_layout, property, layout);
+
+  REINIT_GUI_KEYWORDS (native_layout);
+  REINIT_LAYOUT_KEYWORDS (native_layout);
+}
+#endif
+
 void
 image_instantiator_format_create_glyphs_widget (void)
 {
@@ -1935,6 +2165,24 @@
   image_instantiator_native_layout();
 }
 
+#ifdef __ia64__
+void
+image_instantiator_format_reinit_glyphs_widget (void)
+{
+  image_instantiator_reinit_widget();
+  image_instantiator_reinit_buttons();
+  image_instantiator_reinit_edit_fields();
+  image_instantiator_reinit_combo_box();
+  image_instantiator_reinit_scrollbar();
+  image_instantiator_reinit_progress_guage();
+  image_instantiator_reinit_tree_view();
+  image_instantiator_reinit_tab_control();
+  image_instantiator_reinit_labels();
+  image_instantiator_reinit_layout();
+  image_instantiator_reinit_native_layout();
+}
+#endif
+
 void
 reinit_vars_of_glyphs_widget (void)
 {
--- xemacs-21.5.27.20070507/src/glyphs-x.c
+++ xemacs-21.5.27.20070507/src/glyphs-x.c
@@ -2859,6 +2859,14 @@
 void
 console_type_create_glyphs_x (void)
 {
+#ifdef __ia64__
+  console_type_reinit_glyphs_x ();
+}
+
+void
+console_type_reinit_glyphs_x (void)
+{
+#endif
   /* image methods */
 
   CONSOLE_HAS_METHOD (x, print_image_instance);
@@ -2989,6 +2997,64 @@
   IIFORMAT_VALID_KEYWORD (autodetect, Q_data, check_valid_string);
 }
 
+#ifdef __ia64__
+void
+image_instantiator_format_reinit_glyphs_x (void)
+{
+#ifdef HAVE_XPM
+  IIFORMAT_HAS_DEVMETHOD (x, xpm, instantiate);
+#endif
+  IIFORMAT_HAS_DEVMETHOD (x, xbm, instantiate);
+  IIFORMAT_HAS_DEVMETHOD (x, subwindow, instantiate);
+#ifdef HAVE_WIDGETS
+  IIFORMAT_HAS_DEVMETHOD (x, native_layout, instantiate);
+  IIFORMAT_HAS_DEVMETHOD (x, button, property);
+  IIFORMAT_HAS_DEVMETHOD (x, button, instantiate);
+  IIFORMAT_HAS_DEVMETHOD (x, button, redisplay);
+  IIFORMAT_HAS_DEVMETHOD (x, widget, property);
+  IIFORMAT_HAS_DEVMETHOD (x, progress_gauge, redisplay);
+  IIFORMAT_HAS_DEVMETHOD (x, progress_gauge, instantiate);
+  IIFORMAT_HAS_DEVMETHOD (x, edit_field, instantiate);
+#if defined (LWLIB_WIDGETS_MOTIF) && XmVERSION > 1
+  IIFORMAT_HAS_DEVMETHOD (x, combo_box, instantiate);
+  IIFORMAT_HAS_SHARED_DEVMETHOD (x, combo_box, redisplay, tab_control);
+#endif
+  IIFORMAT_HAS_DEVMETHOD (x, tab_control, instantiate);
+  IIFORMAT_HAS_DEVMETHOD (x, tab_control, redisplay);
+  IIFORMAT_HAS_DEVMETHOD (x, label, instantiate);
+#endif
+
+  IIFORMAT_HAS_METHOD (cursor_font, validate);
+  IIFORMAT_HAS_METHOD (cursor_font, possible_dest_types);
+  IIFORMAT_HAS_METHOD (cursor_font, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (cursor_font, Q_data, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (cursor_font, Q_foreground, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (cursor_font, Q_background, check_valid_string);
+
+  IIFORMAT_HAS_METHOD (font, validate);
+  IIFORMAT_HAS_METHOD (font, possible_dest_types);
+  IIFORMAT_HAS_METHOD (font, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (font, Q_data, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (font, Q_foreground, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (font, Q_background, check_valid_string);
+
+#ifdef HAVE_XFACE
+  IIFORMAT_HAS_DEVMETHOD (x, xface, instantiate);
+#endif
+
+  IIFORMAT_HAS_METHOD (autodetect, validate);
+  IIFORMAT_HAS_METHOD (autodetect, normalize);
+  IIFORMAT_HAS_METHOD (autodetect, possible_dest_types);
+
+  IIFORMAT_HAS_SHARED_METHOD (autodetect, governing_domain, subwindow);
+  IIFORMAT_HAS_METHOD (autodetect, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (autodetect, Q_data, check_valid_string);
+}
+#endif /* __ia64__ */
+
 void
 vars_of_glyphs_x (void)
 {
--- xemacs-21.5.27.20070507/src/glyphs.c
+++ xemacs-21.5.27.20070507/src/glyphs.c
@@ -5252,6 +5252,14 @@
 
   INITIALIZE_SPECIFIER_TYPE_WITH_DATA (image, "image", "imagep");
 
+#ifdef __ia64__
+  specifier_type_reinit_image ();
+}
+
+void
+specifier_type_reinit_image (void)
+{
+#endif
   SPECIFIER_HAS_METHOD (image, create);
   SPECIFIER_HAS_METHOD (image, mark);
   SPECIFIER_HAS_METHOD (image, instantiate);
@@ -5437,6 +5445,84 @@
 #endif /* HAVE_XPM */
 }
 
+#ifdef __ia64__
+void
+image_instantiator_format_reinit (void)
+{
+  IIFORMAT_HAS_METHOD (nothing, possible_dest_types);
+  IIFORMAT_HAS_METHOD (nothing, instantiate);
+
+  IIFORMAT_HAS_METHOD (inherit, validate);
+  IIFORMAT_HAS_METHOD (inherit, normalize);
+  IIFORMAT_HAS_METHOD (inherit, possible_dest_types);
+  IIFORMAT_HAS_METHOD (inherit, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (inherit, Q_face, check_valid_face);
+
+  IIFORMAT_HAS_METHOD (string, validate);
+  IIFORMAT_HAS_SHARED_METHOD (string, governing_domain, subwindow);
+  IIFORMAT_HAS_METHOD (string, possible_dest_types);
+  IIFORMAT_HAS_METHOD (string, instantiate);
+
+  IIFORMAT_REINIT_KEYWORD (string, Q_data, check_valid_string);
+
+  IIFORMAT_HAS_METHOD (text, update);
+  IIFORMAT_HAS_METHOD (text, query_geometry);
+
+  IIFORMAT_HAS_METHOD (formatted_string, validate);
+  IIFORMAT_HAS_METHOD (formatted_string, possible_dest_types);
+  IIFORMAT_HAS_METHOD (formatted_string, instantiate);
+  IIFORMAT_REINIT_KEYWORD (formatted_string, Q_data, check_valid_string);
+
+  IIFORMAT_HAS_SHARED_METHOD (pointer, query_geometry, subwindow);
+
+  IIFORMAT_HAS_METHOD (subwindow, possible_dest_types);
+  IIFORMAT_HAS_METHOD (subwindow, governing_domain);
+  IIFORMAT_HAS_METHOD (subwindow, instantiate);
+  IIFORMAT_HAS_METHOD (subwindow, query_geometry);
+  IIFORMAT_REINIT_KEYWORD (subwindow, Q_pixel_width, check_valid_int);
+  IIFORMAT_REINIT_KEYWORD (subwindow, Q_pixel_height, check_valid_int);
+
+#ifdef HAVE_WINDOW_SYSTEM
+  IIFORMAT_HAS_METHOD (xbm, validate);
+  IIFORMAT_HAS_METHOD (xbm, normalize);
+  IIFORMAT_HAS_METHOD (xbm, possible_dest_types);
+
+  IIFORMAT_REINIT_KEYWORD (xbm, Q_data, check_valid_xbm_inline);
+  IIFORMAT_REINIT_KEYWORD (xbm, Q_file, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (xbm, Q_mask_data, check_valid_xbm_inline);
+  IIFORMAT_REINIT_KEYWORD (xbm, Q_mask_file, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (xbm, Q_hotspot_x, check_valid_int);
+  IIFORMAT_REINIT_KEYWORD (xbm, Q_hotspot_y, check_valid_int);
+  IIFORMAT_REINIT_KEYWORD (xbm, Q_foreground, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (xbm, Q_background, check_valid_string);
+#endif /* HAVE_WINDOW_SYSTEM */
+
+#ifdef HAVE_XFACE
+  IIFORMAT_HAS_METHOD (xface, validate);
+  IIFORMAT_HAS_METHOD (xface, normalize);
+  IIFORMAT_HAS_METHOD (xface, possible_dest_types);
+
+  IIFORMAT_REINIT_KEYWORD (xface, Q_data, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (xface, Q_file, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (xface, Q_hotspot_x, check_valid_int);
+  IIFORMAT_REINIT_KEYWORD (xface, Q_hotspot_y, check_valid_int);
+  IIFORMAT_REINIT_KEYWORD (xface, Q_foreground, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (xface, Q_background, check_valid_string);
+#endif
+
+#ifdef HAVE_XPM
+  IIFORMAT_HAS_METHOD (xpm, validate);
+  IIFORMAT_HAS_METHOD (xpm, normalize);
+  IIFORMAT_HAS_METHOD (xpm, possible_dest_types);
+
+  IIFORMAT_REINIT_KEYWORD (xpm, Q_data, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (xpm, Q_file, check_valid_string);
+  IIFORMAT_REINIT_KEYWORD (xpm, Q_color_symbols, check_valid_xpm_color_symbols);
+#endif /* HAVE_XPM */
+}
+#endif
+
 void
 reinit_vars_of_glyphs (void)
 {
@@ -5564,6 +5650,15 @@
 			 0, 0, 0);
 }
 
+#ifdef __ia64__
+void
+specifier_reinit_glyphs (void)
+{
+  reinit_specifier_caching (Vcurrent_display_table,
+			    some_window_value_changed, 0);
+}
+#endif
+
 void
 complex_vars_of_glyphs (void)
 {
--- xemacs-21.5.27.20070507/src/glyphs.h
+++ xemacs-21.5.27.20070507/src/glyphs.h
@@ -267,6 +267,22 @@
 		entry);						\
   } while (0)
 
+#ifdef __ia64__
+#define IIFORMAT_REINIT_KEYWORD(format, keyw, validate_fun)		\
+  do {									\
+    int j;								\
+    struct image_instantiator_methods *meths;				\
+									\
+    meths = format##_image_instantiator_methods;			\
+    for (j = 0; j < Dynarr_length (meths->keywords); j++)		\
+      if (EQ (keyw, Dynarr_at (meths->keywords, j).keyword))		\
+	{								\
+	  Dynarr_at (meths->keywords, j).validate = validate_fun;	\
+	  break;							\
+	}								\
+  } while (0)
+#endif
+
 #define IIFORMAT_VALID_KEYWORD(format, keyw, validate_fun)	\
 IIFORMAT_VALID_GENERIC_KEYWORD(format, keyw, validate_fun, 1, 0)
 
--- xemacs-21.5.27.20070507/src/gutter.c
+++ xemacs-21.5.27.20070507/src/gutter.c
@@ -1216,6 +1216,19 @@
   SPECIFIER_HAS_METHOD (gutter_visible, validate);
 }
 
+#ifdef __ia64__
+void
+specifier_type_reinit_gutter (void)
+{
+  SPECIFIER_HAS_METHOD (gutter, validate);
+  SPECIFIER_HAS_METHOD (gutter, after_change);
+
+  SPECIFIER_HAS_METHOD (gutter_size, validate);
+
+  SPECIFIER_HAS_METHOD (gutter_visible, validate);
+}
+#endif
+
 void
 reinit_specifier_type_create_gutter (void)
 {
@@ -1656,3 +1669,50 @@
   set_specifier_fallback (Vgutter_visible_p[LEFT_GUTTER],   fb);
   set_specifier_fallback (Vgutter_visible_p[RIGHT_GUTTER],  fb);
 }
+
+#ifdef __ia64
+void
+specifier_reinit_gutter (void)
+{
+  reinit_specifier_caching (Vgutter[TOP_GUTTER],
+			    top_gutter_specs_changed, 0);
+  reinit_specifier_caching (Vgutter[BOTTOM_GUTTER],
+			    bottom_gutter_specs_changed, 0);
+  reinit_specifier_caching (Vgutter[LEFT_GUTTER],
+			    left_gutter_specs_changed, 0);
+  reinit_specifier_caching (Vgutter_visible_p[RIGHT_GUTTER],
+			    right_gutter_specs_changed, 0);
+  reinit_specifier_caching (Vdefault_gutter_height,
+			    default_gutter_size_changed_in_window, 0);
+  reinit_specifier_caching (Vdefault_gutter_width,
+			    default_gutter_size_changed_in_window, 0);
+  reinit_specifier_caching (Vgutter_size[TOP_GUTTER],
+			    gutter_geometry_changed_in_window, 0);
+  reinit_specifier_caching (Vgutter_size[BOTTOM_GUTTER],
+			    gutter_geometry_changed_in_window, 0);
+  reinit_specifier_caching (Vgutter_size[LEFT_GUTTER],
+			    gutter_geometry_changed_in_window, 0);
+  reinit_specifier_caching (Vgutter_size[RIGHT_GUTTER],
+			    gutter_geometry_changed_in_window, 0);
+  reinit_specifier_caching (Vdefault_gutter_border_width,
+			    default_gutter_border_width_changed_in_window, 0);
+  reinit_specifier_caching (Vgutter_border_width[TOP_GUTTER],
+			    gutter_geometry_changed_in_window, 0);
+  reinit_specifier_caching (Vgutter_border_width[BOTTOM_GUTTER],
+			    gutter_geometry_changed_in_window, 0);
+  reinit_specifier_caching (Vgutter_border_width[LEFT_GUTTER],
+			    gutter_geometry_changed_in_window, 0);
+  reinit_specifier_caching (Vgutter_border_width[RIGHT_GUTTER],
+			    gutter_geometry_changed_in_window, 0);
+  reinit_specifier_caching (Vdefault_gutter_visible_p,
+			    default_gutter_visible_p_changed_in_window, 0);
+  reinit_specifier_caching (Vgutter_visible_p[TOP_GUTTER],
+			    top_gutter_specs_changed, 0);
+  reinit_specifier_caching (Vgutter_visible_p[BOTTOM_GUTTER],
+			    bottom_gutter_specs_changed, 0);
+  reinit_specifier_caching (Vgutter_visible_p[LEFT_GUTTER],
+			    left_gutter_specs_changed, 0);
+  reinit_specifier_caching (Vgutter_visible_p[RIGHT_GUTTER],
+			    right_gutter_specs_changed, 0);
+}
+#endif
--- xemacs-21.5.27.20070507/src/lisp.h
+++ xemacs-21.5.27.20070507/src/lisp.h
@@ -3105,6 +3105,20 @@
 #define CONCHECK_EPHEMERON(x) CONCHECK_RECORD (x, ephemeron)
 
 
+#ifdef __ia64__
+struct structure_type *reinit_structure_type (Lisp_Object type,
+					      int (*validate)
+					      (Lisp_Object data,
+					       Error_Behavior errb),
+					      Lisp_Object (*instantiate)
+					      (Lisp_Object data));
+void reinit_structure_type_keyword (struct structure_type *st,
+				    Lisp_Object keyword,
+				    int (*validate) (Lisp_Object keyword,
+						     Lisp_Object value,
+						     Error_Behavior errb));
+#endif
+
 /*---------------------------- weak lists ------------------------------*/
 
 enum weak_list_type
--- xemacs-21.5.27.20070507/src/lread.c
+++ xemacs-21.5.27.20070507/src/lread.c
@@ -2125,6 +2125,49 @@
   Dynarr_add (st->keywords, en);
 }
 
+#ifdef __ia64__
+struct structure_type *
+reinit_structure_type (Lisp_Object type,
+		       int (*validate) (Lisp_Object data,
+					Error_Behavior errb),
+		       Lisp_Object (*instantiate) (Lisp_Object data))
+{
+  int i;
+
+  for (i = 0; i < Dynarr_length (the_structure_type_dynarr); i++)
+    {
+      struct structure_type *st = Dynarr_atp (the_structure_type_dynarr, i);
+      if (EQ (st->type, type))
+	{
+	  st->validate = validate;
+	  st->instantiate = instantiate;
+	  return st;
+	}
+    }
+
+  return 0;
+}
+
+void
+reinit_structure_type_keyword (struct structure_type *st, Lisp_Object keyword,
+			       int (*validate) (Lisp_Object keyword,
+						Lisp_Object value,
+						Error_Behavior errb))
+{
+  int i;
+
+  for (i = 0; i < Dynarr_length (st->keywords); i++)
+    {
+      struct structure_keyword_entry *en = Dynarr_atp (st->keywords, i);
+      if (EQ (en->keyword, keyword))
+	{
+	  en->validate = validate;
+	  break;
+	}
+    }
+}
+#endif
+
 static struct structure_type *
 recognized_structure_type (Lisp_Object type)
 {
--- xemacs-21.5.27.20070507/src/lstream.c
+++ xemacs-21.5.27.20070507/src/lstream.c
@@ -1829,6 +1829,14 @@
 void
 lstream_type_create (void)
 {
+#ifdef __ia64__
+  lstream_type_reinit ();
+}
+
+void
+lstream_type_reinit (void)
+{
+#endif
   LSTREAM_HAS_METHOD (stdio, reader);
   LSTREAM_HAS_METHOD (stdio, writer);
   LSTREAM_HAS_METHOD (stdio, rewinder);
--- xemacs-21.5.27.20070507/src/menubar-gtk.c
+++ xemacs-21.5.27.20070507/src/menubar-gtk.c
@@ -1469,6 +1469,14 @@
 void
 console_type_create_menubar_gtk (void)
 {
+#ifdef __ia64__
+  console_type_reinit_menubar_gtk ();
+}
+
+void
+console_type_reinit_menubar_gtk (void)
+{
+#endif
   CONSOLE_HAS_METHOD (gtk, update_frame_menubars);
   CONSOLE_HAS_METHOD (gtk, free_frame_menubars);
   CONSOLE_HAS_METHOD (gtk, popup_menu);
--- xemacs-21.5.27.20070507/src/menubar-msw.c
+++ xemacs-21.5.27.20070507/src/menubar-msw.c
@@ -891,6 +891,14 @@
 void
 console_type_create_menubar_mswindows (void)
 {
+#ifdef __ia64__
+  console_type_reinit_menubar_mswindows ();
+}
+
+void
+console_type_reinit_menubar_mswindows (void)
+{
+#endif
   CONSOLE_HAS_METHOD (mswindows, update_frame_menubars);
   CONSOLE_HAS_METHOD (mswindows, free_frame_menubars);
   CONSOLE_HAS_METHOD (mswindows, popup_menu);
--- xemacs-21.5.27.20070507/src/menubar-x.c
+++ xemacs-21.5.27.20070507/src/menubar-x.c
@@ -1361,6 +1361,14 @@
 void
 console_type_create_menubar_x (void)
 {
+#ifdef __ia64__
+  console_type_reinit_menubar_x ();
+}
+
+void
+console_type_reinit_menubar_x (void)
+{
+#endif
   CONSOLE_HAS_METHOD (x, update_frame_menubars);
   CONSOLE_HAS_METHOD (x, free_frame_menubars);
   CONSOLE_HAS_METHOD (x, popup_menu);
--- xemacs-21.5.27.20070507/src/menubar.c
+++ xemacs-21.5.27.20070507/src/menubar.c
@@ -785,6 +785,16 @@
 			 menubar_visible_p_changed_in_frame, 0);
 }
 
+#ifdef __ia64__
+void
+specifier_reinit_menubar (void)
+{
+  reinit_specifier_caching (Vmenubar_visible_p,
+			    menubar_visible_p_changed,
+			    menubar_visible_p_changed_in_frame);
+}
+#endif
+
 void
 complex_vars_of_menubar (void)
 {
--- xemacs-21.5.27.20070507/src/native-gtk-toolbar.c
+++ xemacs-21.5.27.20070507/src/native-gtk-toolbar.c
@@ -239,6 +239,14 @@
 void
 console_type_create_toolbar_gtk (void)
 {
+#ifdef __ia64__
+  console_type_reinit_toolbar_gtk ();
+}
+
+void
+console_type_reinit_toolbar_gtk (void)
+{
+#endif
   CONSOLE_HAS_METHOD (gtk, output_frame_toolbars);
   CONSOLE_HAS_METHOD (gtk, initialize_frame_toolbars);
 }
--- xemacs-21.5.27.20070507/src/objects-gtk.c
+++ xemacs-21.5.27.20070507/src/objects-gtk.c
@@ -405,6 +405,14 @@
 void
 console_type_create_objects_gtk (void)
 {
+#ifdef __ia64__
+  console_type_reinit_objects_gtk ();
+}
+
+void
+console_type_reinit_objects_gtk (void)
+{
+#endif
   /* object methods */
 
   CONSOLE_HAS_METHOD (gtk, initialize_color_instance);
--- xemacs-21.5.27.20070507/src/objects-msw.c
+++ xemacs-21.5.27.20070507/src/objects-msw.c
@@ -2245,6 +2245,14 @@
 void
 console_type_create_objects_mswindows (void)
 {
+#ifdef __ia64__
+  console_type_reinit_objects_mswindows ();
+}
+
+void
+console_type_reinit_objects_mswindows (void)
+{
+#endif
   /* object methods */
   CONSOLE_HAS_METHOD (mswindows, initialize_color_instance);
 /*  CONSOLE_HAS_METHOD (mswindows, mark_color_instance); */
--- xemacs-21.5.27.20070507/src/objects-tty.c
+++ xemacs-21.5.27.20070507/src/objects-tty.c
@@ -417,6 +417,14 @@
 void
 console_type_create_objects_tty (void)
 {
+#ifdef __ia64__
+  console_type_reinit_objects_tty ();
+}
+
+void
+console_type_reinit_objects_tty (void)
+{
+#endif
   /* object methods */
   CONSOLE_HAS_METHOD (tty, initialize_color_instance);
   CONSOLE_HAS_METHOD (tty, mark_color_instance);
--- xemacs-21.5.27.20070507/src/objects-x.c
+++ xemacs-21.5.27.20070507/src/objects-x.c
@@ -908,6 +908,14 @@
 void
 console_type_create_objects_x (void)
 {
+#ifdef __ia64__
+  console_type_reinit_objects_x ();
+}
+
+void
+console_type_reinit_objects_x (void)
+{
+#endif
   /* object methods */
 
   CONSOLE_HAS_METHOD (x, initialize_color_instance);
--- xemacs-21.5.27.20070507/src/objects.c
+++ xemacs-21.5.27.20070507/src/objects.c
@@ -1225,6 +1225,14 @@
   INITIALIZE_SPECIFIER_TYPE_WITH_DATA (face_boolean, "face-boolean",
 					 "face-boolean-specifier-p");
 
+#ifdef __ia64__
+  specifier_type_reinit_objects ();
+}
+
+void
+specifier_type_reinit_objects (void)
+{
+#endif
   SPECIFIER_HAS_METHOD (color, instantiate);
   SPECIFIER_HAS_METHOD (font, instantiate);
   SPECIFIER_HAS_METHOD (face_boolean, instantiate);
--- xemacs-21.5.27.20070507/src/process-nt.c
+++ xemacs-21.5.27.20070507/src/process-nt.c
@@ -1581,6 +1581,14 @@
 void
 process_type_create_nt (void)
 {
+#ifdef __ia64__
+  process_type_reinit_nt ();
+}
+
+void
+process_type_reinit_nt (void)
+{
+#endif
   PROCESS_HAS_METHOD (nt, alloc_process_data);
   PROCESS_HAS_METHOD (nt, finalize_process_data);
   PROCESS_HAS_METHOD (nt, init_process);
--- xemacs-21.5.27.20070507/src/process-unix.c
+++ xemacs-21.5.27.20070507/src/process-unix.c
@@ -2329,6 +2329,14 @@
 void
 process_type_create_unix (void)
 {
+#ifdef __ia64__
+  process_type_reinit_unix ();
+}
+
+void
+process_type_reinit_unix (void)
+{
+#endif
   PROCESS_HAS_METHOD (unix, alloc_process_data);
 #ifdef SIGCHLD
   PROCESS_HAS_METHOD (unix, init_process);
--- xemacs-21.5.27.20070507/src/ralloc.c
+++ xemacs-21.5.27.20070507/src/ralloc.c
@@ -121,7 +121,11 @@
                        & ~(page_size - 1))
 #define ROUND_TO_PAGE(addr) (addr & (~(page_size - 1)))
 
+#ifdef __ia64__
+#define MEM_ALIGN (2*sizeof(double))
+#else
 #define MEM_ALIGN sizeof(double)
+#endif
 #define MEM_ROUNDUP(addr) (((unsigned long int)(addr) + MEM_ALIGN - 1) \
 				   & ~(MEM_ALIGN - 1))
 
--- xemacs-21.5.27.20070507/src/rangetab.c
+++ xemacs-21.5.27.20070507/src/rangetab.c
@@ -910,3 +910,16 @@
   define_structure_type_keyword (st, Qdata, rangetab_data_validate);
   define_structure_type_keyword (st, Qtype, rangetab_type_validate);
 }
+
+#ifdef __ia64__
+
+void
+structure_type_reinit_rangetab (void)
+{
+  struct structure_type *st;
+
+  st = reinit_structure_type (Qrange_table, 0, rangetab_instantiate);
+
+  reinit_structure_type_keyword (st, Qdata, rangetab_data_validate);
+}
+#endif
--- xemacs-21.5.27.20070507/src/redisplay-gtk.c
+++ xemacs-21.5.27.20070507/src/redisplay-gtk.c
@@ -1717,6 +1717,14 @@
 void
 console_type_create_redisplay_gtk (void)
 {
+#ifdef __ia64__
+  console_type_reinit_redisplay_gtk ();
+}
+
+void
+console_type_reinit_redisplay_gtk (void)
+{
+#endif
   /* redisplay methods */
   CONSOLE_HAS_METHOD (gtk, text_width);
   CONSOLE_HAS_METHOD (gtk, output_display_block);
--- xemacs-21.5.27.20070507/src/redisplay-msw.c
+++ xemacs-21.5.27.20070507/src/redisplay-msw.c
@@ -1246,6 +1246,14 @@
 void
 console_type_create_redisplay_mswindows (void)
 {
+#ifdef __ia64__
+  console_type_reinit_redisplay_mswindows ();
+}
+
+void
+console_type_reinit_redisplay_mswindows (void)
+{
+#endif
   /* redisplay methods - display*/
   CONSOLE_HAS_METHOD (mswindows, text_width);
   CONSOLE_HAS_METHOD (mswindows, output_display_block);
--- xemacs-21.5.27.20070507/src/redisplay-tty.c
+++ xemacs-21.5.27.20070507/src/redisplay-tty.c
@@ -1506,6 +1506,14 @@
 void
 console_type_create_redisplay_tty (void)
 {
+#ifdef __ia64__
+  console_type_reinit_redisplay_tty ();
+}
+
+void
+console_type_reinit_redisplay_tty (void)
+{
+#endif
   /* redisplay methods */
   CONSOLE_HAS_METHOD (tty, text_width);
   CONSOLE_HAS_METHOD (tty, output_display_block);
--- xemacs-21.5.27.20070507/src/redisplay-x.c
+++ xemacs-21.5.27.20070507/src/redisplay-x.c
@@ -2386,6 +2386,14 @@
 void
 console_type_create_redisplay_x (void)
 {
+#ifdef __ia64__
+  console_type_reinit_redisplay_x ();
+}
+
+void
+console_type_reinit_redisplay_x (void)
+{
+#endif
   /* redisplay methods */
   CONSOLE_HAS_METHOD (x, text_width);
   CONSOLE_HAS_METHOD (x, output_display_block);
--- xemacs-21.5.27.20070507/src/redisplay.c
+++ xemacs-21.5.27.20070507/src/redisplay.c
@@ -10084,3 +10084,26 @@
 			 0, 0, 0);
 
 }
+
+#ifdef __ia64__
+void
+specifier_reinit_redisplay (void)
+{
+  reinit_specifier_caching (Vleft_margin_width,
+			    some_window_value_changed,
+			    margin_width_changed_in_frame);
+  reinit_specifier_caching (Vright_margin_width,
+			    some_window_value_changed,
+			    margin_width_changed_in_frame);
+  reinit_specifier_caching (Vminimum_line_ascent,
+			    some_window_value_changed, 0);
+  reinit_specifier_caching (Vminimum_line_descent,
+			    some_window_value_changed, 0);
+  reinit_specifier_caching (Vuse_left_overflow,
+			    some_window_value_changed, 0);
+  reinit_specifier_caching (Vuse_right_overflow,
+			    some_window_value_changed, 0);
+  reinit_specifier_caching (Vtext_cursor_visible_p,
+			    text_cursor_visible_p_changed, 0);
+}
+#endif
--- xemacs-21.5.27.20070507/src/s/linux.h
+++ xemacs-21.5.27.20070507/src/s/linux.h
@@ -208,6 +208,6 @@
 
 /* The in-built malloc does not work on PPC64 or Alpha, so use the system
    malloc for now. */
-#if defined(__powerpc64__) || defined(__alpha__) || defined(__ia64__)
+#if defined(__powerpc64__) || defined(__alpha__)
 #define SYSTEM_MALLOC
 #endif
--- xemacs-21.5.27.20070507/src/scrollbar-gtk.c
+++ xemacs-21.5.27.20070507/src/scrollbar-gtk.c
@@ -503,6 +503,14 @@
 void
 console_type_create_scrollbar_gtk (void)
 {
+#ifdef __ia64__
+  console_type_reinit_scrollbar_gtk ();
+}
+
+void
+console_type_reinit_scrollbar_gtk (void)
+{
+#endif
   CONSOLE_HAS_METHOD (gtk, inhibit_scrollbar_slider_size_change);
   CONSOLE_HAS_METHOD (gtk, free_scrollbar_instance);
   CONSOLE_HAS_METHOD (gtk, release_scrollbar_instance);
--- xemacs-21.5.27.20070507/src/scrollbar-msw.c
+++ xemacs-21.5.27.20070507/src/scrollbar-msw.c
@@ -473,6 +473,14 @@
 void
 console_type_create_scrollbar_mswindows (void)
 {
+#ifdef __ia64__
+  console_type_reinit_scrollbar_mswindows ();
+}
+
+void
+console_type_reinit_scrollbar_mswindows (void)
+{
+#endif
   CONSOLE_HAS_METHOD (mswindows, create_scrollbar_instance);
   CONSOLE_HAS_METHOD (mswindows, free_scrollbar_instance);
   CONSOLE_HAS_METHOD (mswindows, release_scrollbar_instance);
--- xemacs-21.5.27.20070507/src/scrollbar-x.c
+++ xemacs-21.5.27.20070507/src/scrollbar-x.c
@@ -724,6 +724,14 @@
 void
 console_type_create_scrollbar_x (void)
 {
+#ifdef __ia64__
+  console_type_reinit_scrollbar_x ();
+}
+
+void
+console_type_reinit_scrollbar_x (void)
+{
+#endif
   CONSOLE_HAS_METHOD (x, inhibit_scrollbar_slider_size_change);
   CONSOLE_HAS_METHOD (x, free_scrollbar_instance);
   CONSOLE_HAS_METHOD (x, release_scrollbar_instance);
--- xemacs-21.5.27.20070507/src/scrollbar.c
+++ xemacs-21.5.27.20070507/src/scrollbar.c
@@ -1087,6 +1087,33 @@
 			 frame_size_slipped, 0);
 }
 
+#ifdef __ia64__
+void
+specifier_reinit_scrollbar (void)
+{
+  reinit_specifier_caching (Vscrollbar_width,
+			    vertical_scrollbar_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vscrollbar_height,
+			    some_window_value_changed,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vhorizontal_scrollbar_visible_p,
+			    some_window_value_changed,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vvertical_scrollbar_visible_p,
+			    vertical_scrollbar_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vscrollbar_on_left_p,
+			    vertical_scrollbar_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vscrollbar_on_top_p,
+			    some_window_value_changed,
+			    frame_size_slipped);
+  reinit_specifier_caching (XGLYPH (Vscrollbar_pointer_glyph)->image,
+			    scrollbar_pointer_changed_in_window, 0);
+}
+#endif
+
 void
 complex_vars_of_scrollbar (void)
 {
--- xemacs-21.5.27.20070507/src/select-gtk.c
+++ xemacs-21.5.27.20070507/src/select-gtk.c
@@ -484,6 +484,14 @@
 void
 console_type_create_select_gtk (void)
 {
+#ifdef __ia64__
+  console_type_reinit_select_gtk ();
+}
+
+void
+console_type_reinit_select_gtk (void)
+{
+#endif
   CONSOLE_HAS_METHOD (gtk, own_selection);
   CONSOLE_HAS_METHOD (gtk, disown_selection);
   CONSOLE_HAS_METHOD (gtk, selection_exists_p);
--- xemacs-21.5.27.20070507/src/select-x.c
+++ xemacs-21.5.27.20070507/src/select-x.c
@@ -1533,6 +1533,14 @@
 void
 console_type_create_select_x (void)
 {
+#ifdef __ia64__
+  console_type_reinit_select_x ();
+}
+
+void
+console_type_reinit_select_x (void)
+{
+#endif
   CONSOLE_HAS_METHOD (x, own_selection);
   CONSOLE_HAS_METHOD (x, disown_selection);
   CONSOLE_HAS_METHOD (x, get_foreign_selection);
--- xemacs-21.5.27.20070507/src/specifier.c
+++ xemacs-21.5.27.20070507/src/specifier.c
@@ -3452,6 +3452,24 @@
   recompute_cached_specifier_everywhere (specifier);
 }
 
+#ifdef __ia64__
+void
+reinit_specifier_caching (Lisp_Object specifier,
+			  void (*value_changed_in_window)
+			  (Lisp_Object specifier, struct window *w,
+			   Lisp_Object oldval),
+			  void (*value_changed_in_frame)
+			  (Lisp_Object specifier, struct frame *f,
+			   Lisp_Object oldval))
+{
+  struct Lisp_Specifier *sp = XSPECIFIER (specifier);
+  assert (!GHOST_SPECIFIER_P (sp));
+
+  sp->caching->value_changed_in_window = value_changed_in_window;
+  sp->caching->value_changed_in_frame = value_changed_in_frame;
+}
+#endif
+
 static void
 recompute_one_cached_specifier_in_window (Lisp_Object specifier,
 					  struct window *w)
@@ -3895,6 +3913,20 @@
   SPECIFIER_HAS_METHOD (display_table, validate);
 }
 
+#ifdef __ia64__
+void
+specifier_type_reinit (void)
+{
+  SPECIFIER_HAS_METHOD (integer, validate);
+
+  SPECIFIER_HAS_METHOD (natnum, validate);
+
+  SPECIFIER_HAS_METHOD (boolean, validate);
+
+  SPECIFIER_HAS_METHOD (display_table, validate);
+}
+#endif
+
 void
 reinit_specifier_type_create (void)
 {
--- xemacs-21.5.27.20070507/src/specifier.h
+++ xemacs-21.5.27.20070507/src/specifier.h
@@ -517,6 +517,15 @@
 			    (Lisp_Object specifier, struct frame *f,
 			     Lisp_Object oldval),
 			    int always_recompute);
+#ifdef __ia64__
+void reinit_specifier_caching (Lisp_Object specifier,
+			       void (*value_changed_in_window)
+			       (Lisp_Object specifier, struct window *w,
+				Lisp_Object oldval),
+			       void (*value_changed_in_frame)
+			       (Lisp_Object specifier, struct frame *f,
+				Lisp_Object oldval));
+#endif
 void set_specifier_fallback (Lisp_Object specifier,
 			     Lisp_Object fallback);
 void recompute_all_cached_specifiers_in_window (struct window *w);
--- xemacs-21.5.27.20070507/src/symsinit.h
+++ xemacs-21.5.27.20070507/src/symsinit.h
@@ -561,4 +561,82 @@
    interactions with the supporting libraries. */
 void init_number (void);
 
+#ifdef __ia64__
+/* We need to reinitialize all function pointers. Sigh. */
+
+void console_type_reinit_stream (void);
+void console_type_reinit_tty (void);
+void console_type_reinit_device_tty (void);
+void console_type_reinit_frame_tty (void);
+void console_type_reinit_objects_tty (void);
+void console_type_reinit_redisplay_tty (void);
+void console_type_reinit_gtk (void);
+void console_type_reinit_select_gtk (void);
+void console_type_reinit_device_gtk (void);
+void console_type_reinit_dialog_gtk (void);
+void console_type_reinit_frame_gtk (void);
+void console_type_reinit_objects_gtk (void);
+void console_type_reinit_glyphs_gtk (void);
+void console_type_reinit_redisplay_gtk (void);
+void console_type_reinit_menubar_gtk (void);
+void console_type_reinit_scrollbar_gtk (void);
+void console_type_reinit_toolbar_gtk (void);
+void console_type_reinit_x (void);
+void console_type_reinit_device_x (void);
+void console_type_reinit_frame_x (void);
+void console_type_reinit_glyphs_x (void);
+void console_type_reinit_select_x (void);
+void console_type_reinit_menubar_x (void);
+void console_type_reinit_objects_x (void);
+void console_type_reinit_redisplay_x (void);
+void console_type_reinit_scrollbar_x (void);
+void console_type_reinit_toolbar_x (void);
+void console_type_reinit_dialog_x (void);
+void console_type_reinit_mswindows (void);
+void console_type_reinit_device_mswindows (void);
+void console_type_reinit_frame_mswindows (void);
+void console_type_reinit_menubar_mswindows (void);
+void console_type_reinit_objects_mswindows (void);
+void console_type_reinit_redisplay_mswindows (void);
+void console_type_reinit_scrollbar_mswindows (void);
+void console_type_reinit_toolbar_mswindows (void);
+void console_type_reinit_glyphs_mswindows (void);
+void console_type_reinit_dialog_mswindows (void);
+
+void specifier_type_reinit (void);
+void specifier_type_reinit_image (void);
+void specifier_type_reinit_gutter (void);
+void specifier_type_reinit_objects (void);
+void specifier_type_reinit_toolbar (void);
+
+void structure_type_reinit_chartab (void);
+void structure_type_reinit_faces (void);
+void structure_type_reinit_rangetab (void);
+void structure_type_reinit_hash_table (void);
+
+void image_instantiator_format_reinit (void);
+void image_instantiator_format_reinit_glyphs_eimage (void);
+void image_instantiator_format_reinit_glyphs_widget (void);
+void image_instantiator_format_reinit_glyphs_gtk (void);
+void image_instantiator_format_reinit_glyphs_x (void);
+void image_instantiator_format_reinit_glyphs_mswindows (void);
+
+void lstream_type_reinit (void);
+void lstream_type_reinit_file_coding (void);
+void lstream_type_reinit_print (void);
+void lstream_type_reinit_mswindows_selectable (void);
+
+void process_type_reinit_nt (void);
+void process_type_reinit_unix (void);
+
+void specifier_reinit_glyphs (void);
+void specifier_reinit_gutter (void);
+void specifier_reinit_menubar (void);
+void specifier_reinit_redisplay (void);
+void specifier_reinit_scrollbar (void);
+void specifier_reinit_toolbar (void);
+void specifier_reinit_window (void);
+
+#endif /* __ia64__ */
+
 #endif /* INCLUDED_symsinit_h_ */
--- xemacs-21.5.27.20070507/src/toolbar-gtk.c
+++ xemacs-21.5.27.20070507/src/toolbar-gtk.c
@@ -63,6 +63,14 @@
 void
 console_type_create_toolbar_gtk (void)
 {
+#ifdef __ia64__
+  console_type_reinit_toolbar_gtk ();
+}
+
+void
+console_type_reinit_toolbar_gtk (void)
+{
+#endif
   CONSOLE_HAS_METHOD (gtk, output_frame_toolbars);
   CONSOLE_HAS_METHOD (gtk, clear_frame_toolbars);
   CONSOLE_HAS_METHOD (gtk, initialize_frame_toolbars);
--- xemacs-21.5.27.20070507/src/toolbar-msw.c
+++ xemacs-21.5.27.20070507/src/toolbar-msw.c
@@ -650,6 +650,14 @@
 void
 console_type_create_toolbar_mswindows (void)
 {
+#ifdef __ia64__
+  console_type_reinit_toolbar_mswindows ();
+}
+
+void
+console_type_reinit_toolbar_mswindows (void)
+{
+#endif
   CONSOLE_HAS_METHOD (mswindows, output_frame_toolbars);
   CONSOLE_HAS_METHOD (mswindows, clear_frame_toolbars);
   CONSOLE_HAS_METHOD (mswindows, initialize_frame_toolbars);
--- xemacs-21.5.27.20070507/src/toolbar-x.c
+++ xemacs-21.5.27.20070507/src/toolbar-x.c
@@ -77,6 +77,14 @@
 void
 console_type_create_toolbar_x (void)
 {
+#ifdef __ia64__
+  console_type_reinit_toolbar_x ();
+}
+
+void
+console_type_reinit_toolbar_x (void)
+{
+#endif
   CONSOLE_HAS_METHOD (x, output_frame_toolbars);
   CONSOLE_HAS_METHOD (x, clear_frame_toolbars);
   CONSOLE_HAS_METHOD (x, initialize_frame_toolbars);
--- xemacs-21.5.27.20070507/src/toolbar.c
+++ xemacs-21.5.27.20070507/src/toolbar.c
@@ -1375,6 +1375,14 @@
 {
   INITIALIZE_SPECIFIER_TYPE (toolbar, "toolbar", "toolbar-specifier-p");
 
+#ifdef __ia64__
+  specifier_type_reinit_toolbar ();
+}
+
+void
+specifier_type_reinit_toolbar (void)
+{
+#endif
   SPECIFIER_HAS_METHOD (toolbar, validate);
   SPECIFIER_HAS_METHOD (toolbar, after_change);
 }
@@ -1993,3 +2001,70 @@
   set_specifier_fallback (Vtoolbar_buttons_captioned_p,
 			  list1 (Fcons (Qnil, Qt)));
 }
+
+#ifdef __ia64__
+void
+specifier_reinit_toolbar (void)
+{
+  reinit_specifier_caching (Vdefault_toolbar,
+			    default_toolbar_specs_changed, 0);
+  reinit_specifier_caching (Vtoolbar[TOP_TOOLBAR],
+			    toolbar_specs_changed, 0);
+  reinit_specifier_caching (Vtoolbar[BOTTOM_TOOLBAR],
+			    toolbar_specs_changed, 0);
+  reinit_specifier_caching (Vtoolbar[LEFT_TOOLBAR],
+			    toolbar_specs_changed, 0);
+  reinit_specifier_caching (Vtoolbar[RIGHT_TOOLBAR],
+			    toolbar_specs_changed, 0);
+  reinit_specifier_caching (Vdefault_toolbar_height,
+			    default_toolbar_size_changed_in_window,
+			    default_toolbar_size_changed_in_frame);
+  reinit_specifier_caching (Vdefault_toolbar_width,
+			    default_toolbar_size_changed_in_window,
+			    default_toolbar_size_changed_in_frame);
+  reinit_specifier_caching (Vtoolbar_size[TOP_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vtoolbar_size[BOTTOM_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vtoolbar_size[LEFT_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vtoolbar_size[RIGHT_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vdefault_toolbar_border_width,
+			    default_toolbar_border_width_changed_in_window,
+			    default_toolbar_border_width_changed_in_frame);
+  reinit_specifier_caching (Vtoolbar_border_width[TOP_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vtoolbar_border_width[BOTTOM_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vtoolbar_border_width[LEFT_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vtoolbar_border_width[RIGHT_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vdefault_toolbar_visible_p,
+			    default_toolbar_visible_p_changed_in_window,
+			    default_toolbar_visible_p_changed_in_frame);
+  reinit_specifier_caching (Vtoolbar_visible_p[TOP_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vtoolbar_visible_p[BOTTOM_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vtoolbar_visible_p[LEFT_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vtoolbar_visible_p[RIGHT_TOOLBAR],
+			    toolbar_geometry_changed_in_window,
+			    frame_size_slipped);
+  reinit_specifier_caching (Vtoolbar_buttons_captioned_p,
+			    toolbar_buttons_captioned_p_changed, 0);
+}
+#endif
--- xemacs-21.5.27.20070507/src/window.c
+++ xemacs-21.5.27.20070507/src/window.c
@@ -5752,3 +5752,22 @@
 			 vertical_divider_changed_in_window,
 			 0, 0, 0);
 }
+
+#ifdef __ia64__
+void
+specifier_reinit_window (void)
+{
+  reinit_specifier_caching (Vmodeline_shadow_thickness,
+			    modeline_shadow_thickness_changed, 0);
+  reinit_specifier_caching (Vhas_modeline_p,
+			    some_window_value_changed, 0);
+  reinit_specifier_caching (Vvertical_divider_always_visible_p,
+			    vertical_divider_changed_in_window, 0);
+  reinit_specifier_caching (Vvertical_divider_shadow_thickness,
+			    vertical_divider_changed_in_window, 0);
+  reinit_specifier_caching (Vvertical_divider_line_width,
+			    vertical_divider_changed_in_window, 0);
+  reinit_specifier_caching (Vvertical_divider_spacing,
+			    vertical_divider_changed_in_window, 0);
+}
+#endif