diff -c ../xfig.3.2.2/d_text.c ./d_text.c
*** ../xfig.3.2.2/d_text.c	Sat Jun 13 01:27:52 1998
--- ./d_text.c	Sun Jul 19 12:37:04 1998
***************
*** 139,144 ****
--- 139,145 ----
      }
  #endif  /* I18N_NO_PREEDIT */
  #endif  /* I18N */
+     reset_action_on();
      clear_mousefun_kbd();
      set_cursor(pencil_cursor);
      is_newline = 0;
diff -c ../xfig.3.2.2/mode.h ./mode.h
*** ../xfig.3.2.2/mode.h	Thu Jul  2 09:04:58 1998
--- ./mode.h	Sun Jul 19 12:36:28 1998
***************
*** 37,42 ****
--- 37,43 ----
  #define		F_REGPOLY		15
  #define		F_PICOBJ		16
  #define		F_PLACE_LIB_OBJ		17
+ #define		F_PASTE			18
  
  #define	    FIRST_EDIT_MODE	    F_GLUE
  #define		F_GLUE			30
diff -c ../xfig.3.2.2/u_print.c ./u_print.c
*** ../xfig.3.2.2/u_print.c	Sat Jun  6 06:39:15 1998
--- ./u_print.c	Sat Jul 11 13:08:47 1998
***************
*** 262,281 ****
  	if (transparent) {
  	    /* escape the first character of the transparent color (#) for the shell */
  #ifdef I18N
! 	    sprintf(prcmd, "fig2dev -L%s %s -t \\%s -m %f %s %s", 
  		appres.international ? appres.fig2dev_localize_option : "",
  #else
! 	    sprintf(prcmd, "fig2dev -L%s -t \\%s -m %f %s %s", 
  #endif  /* I18N */
! 			lang, transparent, mag/100.0, tmp_fig_file, outfile);
  	} else {
  #ifdef I18N
! 	    sprintf(prcmd, "fig2dev -L%s %s -m %f %s %s", 
  		appres.international ? appres.fig2dev_localize_option : "",
  #else
! 	    sprintf(prcmd, "fig2dev -L%s -m %f %s %s", 
  #endif  /* I18N */
! 			lang, mag/100.0, tmp_fig_file, outfile);
  	}
  
      /* everything else */
--- 262,281 ----
  	if (transparent) {
  	    /* escape the first character of the transparent color (#) for the shell */
  #ifdef I18N
! 	    sprintf(prcmd, "fig2dev -L%s %s -t \\%s -m %f %s %s", lang,
  		appres.international ? appres.fig2dev_localize_option : "",
  #else
! 	    sprintf(prcmd, "fig2dev -L%s -t \\%s -m %f %s %s", lang,
  #endif  /* I18N */
! 			transparent, mag/100.0, tmp_fig_file, outfile);
  	} else {
  #ifdef I18N
! 	    sprintf(prcmd, "fig2dev -L%s %s -m %f %s %s", lang,
  		appres.international ? appres.fig2dev_localize_option : "",
  #else
! 	    sprintf(prcmd, "fig2dev -L%s -m %f %s %s", lang,
  #endif  /* I18N */
! 			mag/100.0, tmp_fig_file, outfile);
  	}
  
      /* everything else */
diff -c ../xfig.3.2.2/w_cmdpanel.c ./w_cmdpanel.c
*** ../xfig.3.2.2/w_cmdpanel.c	Tue Jun 30 02:20:15 1998
--- ./w_cmdpanel.c	Sun Jul 19 12:37:40 1998
***************
*** 473,479 ****
--- 473,482 ----
  	turn_off_current();
  	set_mousefun("place object","","cancel paste",
  			"place object", "", "cancel paste");
+ 	/* set to paste mode */
  	set_action_on();
+ 	cur_mode = F_PASTE;
+ 
  	cur_c = create_compound();
  	cur_c->parent = NULL;
  	cur_c->GABPtr = NULL;
***************
*** 497,502 ****
--- 500,510 ----
  	} else {
  		/* an error reading a .fig file */
  		file_msg("Error reading %s",cut_buf_name);
+ 		reset_action_on();
+ 		turn_off_current();
+ 		set_cursor(arrow_cursor);
+ 		/* free((char *) cur_c);  ---- cur_c should freed here? */
+ 		return;
  	}
  	/* remap the image colors in the new object and existing on canvas */
  	/* first attach the new object as the "next" compound off the "objects" */
diff -c ../xfig.3.2.2/w_i18n.c ./w_i18n.c
*** ../xfig.3.2.2/w_i18n.c	Sat Jun  6 06:44:23 1998
--- ./w_i18n.c	Fri Jul 10 23:23:55 1998
***************
*** 221,233 ****
       int *size_ret;
  {
    extern struct _xfstruct x_fontinfo[]; /* X11 fontnames */
!   static font_types[] = { 0, 2 };  /* 0 = Times-Roman, 2 = Times-Bold */
    struct xfont *nf;
    int i;
    if (!appres.international) return FALSE;
    for (i = 0; i < XtNumber(font_types); i++) {
      nf = x_fontinfo[font_types[i]].xfontlist;
!     while (nf != NULL && nf->fstruct->fid != fid) nf = nf->next;
      if (nf != NULL) {
        *fontset = (font_types[i]==0) ? appres.normal_fontset : appres.bold_fontset;
        *size_ret = nf->size;
--- 221,234 ----
       int *size_ret;
  {
    extern struct _xfstruct x_fontinfo[]; /* X11 fontnames */
!   static int font_types[] = { 0, 2 };  /* 0 = Times-Roman, 2 = Times-Bold */
    struct xfont *nf;
    int i;
    if (!appres.international) return FALSE;
    for (i = 0; i < XtNumber(font_types); i++) {
      nf = x_fontinfo[font_types[i]].xfontlist;
!     while (nf != NULL && (nf->fstruct == NULL || nf->fstruct->fid != fid))
!       nf = nf->next;
      if (nf != NULL) {
        *fontset = (font_types[i]==0) ? appres.normal_fontset : appres.bold_fontset;
        *size_ret = nf->size;
