diff -u -r intltool-old/intltool-extract.in.in intltool/intltool-extract.in.in
--- intltool-old/intltool-extract.in.in	2005-08-01 11:34:42.000000000 +0500
+++ intltool/intltool-extract.in.in	2005-11-04 20:59:53.000000000 +0500
@@ -188,7 +188,12 @@
     &convert;
 
     open OUT, ">$OUTFILE";
-    binmode (OUT) if $^O eq 'MSWin32';
+    if ($^O eq 'MSWin32') {
+    	binmode OUT;
+    } else {
+    	binmode OUT, ':utf8';
+    }
+
     &msg_write;
     close OUT;
 
@@ -202,6 +207,7 @@
 	local (*IN);
 	local $/; #slurp mode
 	open (IN, "<$SRCDIR_ARG/$FILE") || die "can't open $SRCDIR_ARG/$FILE: $!";
+        binmode IN, ':utf8';
 	$input = <IN>;
     }
 
@@ -499,7 +505,7 @@
     my $clist = $expat->{Curlist};
     my $pos   = $#$clist;
 
-    push @$clist, 0 => $expat->original_string();
+    push @$clist, 0 => $expat->recognized_string();
 }
 
 # Verbatim copy from intltool-merge.in.in
@@ -509,7 +515,7 @@
     my $clist = $expat->{Curlist};
     my $pos   = $#$clist;
 
-    $clist->[$pos] .= $expat->original_string();
+    $clist->[$pos] .= $expat->recognized_string();
 }
 
 # Verbatim copy from intltool-merge.in.in
@@ -520,13 +526,13 @@
     my $clist = $expat->{Curlist};
     my $pos   = $#$clist;
 
-    # Use original_string so that we retain escaped entities
+    # Use recognized_string so that we retain escaped entities
     # in CDATA sections.
     #
     if ($pos > 0 and $clist->[$pos - 1] eq '0') {
-        $clist->[$pos] .= $expat->original_string();
+        $clist->[$pos] .= $expat->recognized_string();
     } else {
-        push @$clist, 0 => $expat->original_string();
+        push @$clist, 0 => $expat->recognized_string();
     }
 }
 
@@ -537,13 +543,13 @@
     my $tag      = shift;
     my @origlist = ();
 
-    # Use original_string so that we retain escaped entities
+    # Use recognized_string so that we retain escaped entities
     # in attribute values.  We must convert the string to an
     # @origlist array to conform to the structure of the Tree
     # Style.
     #
-    my @original_array = split /\x/, $expat->original_string();
-    my $source         = $expat->original_string();
+    my @original_array = split /\x/, $expat->recognized_string();
+    my $source         = $expat->recognized_string();
 
     # Remove leading tag.
     #
diff -u -r intltool-old/intltool-merge.in.in intltool/intltool-merge.in.in
--- intltool-old/intltool-merge.in.in	2005-07-06 19:08:53.000000000 +0500
+++ intltool/intltool-merge.in.in	2005-11-04 20:51:41.000000000 +0500
@@ -850,7 +850,7 @@
     my $clist = $expat->{Curlist};
     my $pos   = $#$clist;
 
-    push @$clist, 0 => $expat->original_string();
+    push @$clist, 0 => $expat->recognized_string();
 }
 
 sub intltool_tree_cdataend
@@ -859,7 +859,7 @@
     my $clist = $expat->{Curlist};
     my $pos   = $#$clist;
 
-    $clist->[$pos] .= $expat->original_string();
+    $clist->[$pos] .= $expat->recognized_string();
 }
 
 sub intltool_tree_char
@@ -869,13 +869,13 @@
     my $clist = $expat->{Curlist};
     my $pos   = $#$clist;
 
-    # Use original_string so that we retain escaped entities
+    # Use recognized_string so that we retain escaped entities
     # in CDATA sections.
     #
     if ($pos > 0 and $clist->[$pos - 1] eq '0') {
-        $clist->[$pos] .= $expat->original_string();
+        $clist->[$pos] .= $expat->recognized_string();
     } else {
-        push @$clist, 0 => $expat->original_string();
+        push @$clist, 0 => $expat->recognized_string();
     }
 }
 
@@ -885,13 +885,13 @@
     my $tag      = shift;
     my @origlist = ();
 
-    # Use original_string so that we retain escaped entities
+    # Use recognized_string so that we retain escaped entities
     # in attribute values.  We must convert the string to an
     # @origlist array to conform to the structure of the Tree
     # Style.
     #
-    my @original_array = split /\x/, $expat->original_string();
-    my $source         = $expat->original_string();
+    my @original_array = split /\x/, $expat->recognized_string();
+    my $source         = $expat->recognized_string();
 
     # Remove leading tag.
     #
