diff --git a/RPC-XML-0.77-fixtest.dif b/RPC-XML-0.77-fixtest.dif
new file mode 100644
index 0000000..d36c3b1
--- /dev/null
+++ b/RPC-XML-0.77-fixtest.dif
@@ -0,0 +1,22 @@
+Index: RPC-XML-0.77/lib/RPC/XML.pm
+===================================================================
+--- RPC-XML-0.77.orig/lib/RPC/XML.pm
++++ RPC-XML-0.77/lib/RPC/XML.pm
+@@ -842,7 +842,7 @@ sub as_string
+ ("$_",
+ $clean{$_},
+ '')
+- } (keys %clean)),
++ } (sort keys %clean)),
+ '';
+ }
+
+@@ -854,7 +854,7 @@ sub serialize
+ my $key;
+
+ print {$fh} '';
+- for (keys %{$self})
++ for (sort keys %{$self})
+ {
+ ($key = $_) =~ s/$RPC::XML::XMLRE/$RPC::XML::XMLMAP{$1}/ge;
+ utf8::downgrade($key);
diff --git a/perl-RPC-XML.changes b/perl-RPC-XML.changes
index 03bddeb..cb419ea 100644
--- a/perl-RPC-XML.changes
+++ b/perl-RPC-XML.changes
@@ -1,3 +1,9 @@
+-------------------------------------------------------------------
+Mon Jul 1 08:17:26 UTC 2013 - coolo@suse.com
+
+- add RPC-XML-0.77-fixtest.dif to make sure the serialization is
+ reproducible even with hash randomization in perl 5.18 (RT#86187)
+
-------------------------------------------------------------------
Sun May 5 12:05:08 UTC 2013 - mc@suse.com
diff --git a/perl-RPC-XML.spec b/perl-RPC-XML.spec
index eeb0c6e..61f8c82 100644
--- a/perl-RPC-XML.spec
+++ b/perl-RPC-XML.spec
@@ -28,6 +28,8 @@ Source: http://www.cpan.org/authors/id/R/RJ/RJRAY/RPC-XML-%{version}.tar
#PATCH-FIX-OPENSUSE - ro@suse.de - fix build in chroot/buildservice
Patch1: RPC-XML-0.60-rev127.dif
Patch2: RPC-XML-0.76-extern_ent.dif
+#PATCH-FIX-UPSTREAM - coolo@suse.de RT#86187
+Patch3: RPC-XML-0.77-fixtest.dif
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(File::Spec) >= 0.8
@@ -64,6 +66,7 @@ RPC::XML::Server manpage, respectively.
%setup -q -n %{cpan_name}-%{version}
%patch1 -p0
%patch2
+%patch3 -p1
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor