--- intltool-extract.orig	2010-02-07 21:24:15.710098211 +0300
+++ intltool-extract	2010-02-07 21:34:29.010069573 +0300
@@ -33,16 +33,17 @@
 my $PROGRAM      = "intltool-extract";
 my $PACKAGE      = "intltool";
 my $VERSION      = "0.41.0";
 
 ## Loaded modules
 use strict; 
 use File::Basename;
 use Getopt::Long;
+use Tie::IxHash;
 
 ## Scalars used by the option stuff
 my $TYPE_ARG	= "0";
 my $LOCAL_ARG	= "0";
 my $HELP_ARG 	= "0";
 my $VERSION_ARG = "0";
 my $UPDATE_ARG  = "0";
 my $QUIET_ARG   = "0";
@@ -50,16 +51,17 @@
 my $NOMSGCTXT_ARG = "0";
 
 my $FILE;
 my $OUTFILE;
 
 my $gettext_type = "";
 my $input;
 my %messages = ();
+tie %messages, "Tie::IxHash";
 my %loc = ();
 my %count = ();
 my %comments = ();
 my $strcount = 0;
 
 my $XMLCOMMENT = "";
 
 ## Use this instead of \w for XML files to handle more possible characters.
@@ -930,17 +932,17 @@
 sub msg_write {
     my @msgids;
     if (%count)
     {
         @msgids = sort { $count{$a} <=> $count{$b} } keys %count;
     }
     else
     {
-        @msgids = sort keys %messages;
+        @msgids = keys %messages;
     }
     for my $message (@msgids)
     {
 	my $offsetlines = 1;
 	my $context = undef;
 	$offsetlines++ if $message =~ /%/;
 	if (defined ($comments{$message}))
 	{
