diff -purN kdebase-3.5.7.orig/doc/kioslave/index.docbook kdebase-3.5.7/doc/kioslave/index.docbook
--- kdebase-3.5.7.orig/doc/kioslave/index.docbook	2007-09-13 18:41:54.000000000 +0200
+++ kdebase-3.5.7/doc/kioslave/index.docbook	2007-09-13 18:46:13.000000000 +0200
@@ -20,6 +20,7 @@
 <!ENTITY kio-info SYSTEM "info.docbook">
 <!ENTITY kio-lan SYSTEM "lan.docbook">
 <!ENTITY kio-ldap SYSTEM "ldap.docbook">
+<!ENTITY kio-lzma SYSTEM "lzma.docbook">
 <!ENTITY kio-mailto SYSTEM "mailto.docbook">
 <!ENTITY kio-mac SYSTEM "mac.docbook">
 <!ENTITY kio-man SYSTEM "man.docbook">
@@ -68,6 +69,7 @@
 &kio-info;
 &kio-lan;
 &kio-ldap;
+&kio-lzma;
 &kio-mailto;
 &kio-mac;
 &kio-man;
diff -purN kdebase-3.5.7.orig/doc/kioslave/lzma.docbook kdebase-3.5.7/doc/kioslave/lzma.docbook
--- kdebase-3.5.7.orig/doc/kioslave/lzma.docbook	1970-01-01 01:00:00.000000000 +0100
+++ kdebase-3.5.7/doc/kioslave/lzma.docbook	2007-09-13 18:46:13.000000000 +0200
@@ -0,0 +1,30 @@
+<article lang="&language;" id="lzma">
+<title>lzma</title>
+<articleinfo>
+<authorgroup>
+<author>&Lauri.Watts; &Lauri.Watts.mail;</author>
+<!-- TRANS:ROLES_OF_TRANSLATORS -->
+</authorgroup>
+</articleinfo>
+
+<para><command>lzma</command> is a compression program</para>
+
+<para>The lzma kioslave is not directly usable, and is intended for use
+as a filter.  For example, the tar kioslave can filter a file through
+the lzma kioslave, in order to display the contents of a <literal
+role="extension">tar.lzma</literal> file directly in a &konqueror;
+window.</para>
+
+<para>If you click on a file compressed with a <literal
+role="extension">lzma</literal> extension in &konqueror;, this kioslave is
+used to uncompress it and display it as a normal (uncompressed)
+file.</para>
+
+<para>If you are a developer, and would like to use the lzma filter, you
+can find documentation on using kioslaves at <ulink
+url="http://developer.kde.org">http://developer.kde.org</ulink></para>
+
+<para> See the manual: <ulink url="man:/lzma">lzma</ulink>.
+</para>
+
+</article>
diff -purN kdebase-3.5.7.orig/kioslave/filter/lzma.protocol kdebase-3.5.7/kioslave/filter/lzma.protocol
--- kdebase-3.5.7.orig/kioslave/filter/lzma.protocol	1970-01-01 01:00:00.000000000 +0100
+++ kdebase-3.5.7/kioslave/filter/lzma.protocol	2007-09-13 18:46:13.000000000 +0200
@@ -0,0 +1,10 @@
+[Protocol]
+exec=kio_filter
+protocol=lzma
+mimetype=application/lzma
+input=stream
+output=stream
+reading=true
+source=false
+DocPath=kioslave/lzma.html
+Icon=ark
diff -purN kdebase-3.5.7.orig/kioslave/filter/Makefile.am kdebase-3.5.7/kioslave/filter/Makefile.am
--- kdebase-3.5.7.orig/kioslave/filter/Makefile.am	2007-09-13 18:41:35.000000000 +0200
+++ kdebase-3.5.7/kioslave/filter/Makefile.am	2007-09-13 18:47:03.000000000 +0200
@@ -17,5 +17,5 @@ if include_BZIP2
 BZIP2FILES=bzip.protocol bzip2.protocol
 endif
 
-protocol_DATA = gzip.protocol $(BZIP2FILES)
+protocol_DATA = gzip.protocol $(BZIP2FILES) lzma.protocol
 
diff -purN kdebase-3.5.7.orig/kioslave/info/kde-info2html kdebase-3.5.7/kioslave/info/kde-info2html
--- kdebase-3.5.7.orig/kioslave/info/kde-info2html	2007-09-13 18:41:35.000000000 +0200
+++ kdebase-3.5.7/kioslave/info/kde-info2html	2007-09-13 18:46:13.000000000 +0200
@@ -39,6 +39,8 @@
 #   March 9 2003      Add support for browsing by file. by Luis Pedro Coelho
 #   June  11 2003     Update the layout of the sides to the new infopageslayout.
 #                     by Sven Leiber <s.leiber@web.de>
+#   August 30 2007    Add lzma support.
+#                     by Per Øyvind Karlsen <peroyvind@mandriva.org>                  
 #
 #-------------------------------------------------------
 
@@ -143,6 +145,9 @@ sub FileNotFound {
 	elsif ($DirFileName =~ m/.info.gz$/ ) {
 		open DIR, "-|", "gzip", "-dc", $DirFileName;
 	}
+	elsif ($DirFileName =~ m/.info.lzma$/ ) {
+		open DIR, "-|", "lzma", "-dc", $DirFileName;
+	}
 	else {
 		open DIR, $DirFileName;
 	}
@@ -252,6 +257,9 @@ sub infocat {
 			elsif ($infofile =~ m/.info.gz$/ ) {
 				open INFOFILE, "-|", "gzip", "-dc", "$dir/$infofile";
 			}
+			elsif ($infofile =~ m/.info.lzma$/ ) {
+ 				open INFOFILE, "-|", "lzma", "-dc", "$dir/$infofile";
+			}
 			elsif ($infofile =~ m/.info$/) {
 				open INFOFILE, "-|", "$dir/$infofile";
 			}
@@ -427,6 +435,9 @@ sub ReadIndirectTable {
     open FH1, "-|", "gunzip", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
   } elsif ($FileName =~ /\.bz2$/) {
     open FH1, "-|", "bunzip2", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
+  } elsif ($FileName =~ /\.lzma$/) {
+    open FH1, "-|", "unlzma", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
+
   } else {
     open(FH1, $FileName) || &DieFileNotFound($FileName);
   }
@@ -473,6 +484,8 @@ sub ReadTagTable {
     open FH, "-|", "gunzip", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
   } elsif ($FileName =~ /\.bz2$/) {
     open FH, "-|", "bunzip2", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
+  } elsif ($FileName =~ /\.lzma$/) {
+    open FH, "-|", "unlzma", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
   } else {
     open FH, $FileName || &DieFileNotFound($FileName);
   }
@@ -756,6 +769,8 @@ sub InfoNode2HTML {
     open FH2, "-|", "gunzip", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
   } elsif ($FileName =~ /\.bz2$/) {
     open FH2, "-|", "bunzip2", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
+  } elsif ($FileName =~ /\.lzma$/) {
+    open FH2, "-|", "unlzma", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
   } else {
     open FH2, $FileName || &DieFileNotFound($FileName);
   }
@@ -985,17 +1000,21 @@ sub FindFile {
     foreach my $Name ($File, $Alt) {
         my $gzName  = $Name . '.gz';
         my $bz2Name = $Name . '.bz2';
+	my $lzmaName = $Name . '.lzma';
 
         foreach (@info2html::config::INFODIR) {
             return "$_/$Name"    if -e "$_/$Name";
             return "$_/$gzName"  if -e "$_/$gzName";
             return "$_/$bz2Name" if -e "$_/$bz2Name";
+	    return "$_/$lzmaName" if -e "$_/$lzmaName";
+	    
         }
         next unless $ENV{INFOPATH};
         foreach my $i (split(/:/, $ENV{INFOPATH})) {
             return "$i/$Name"    if -e "$i/$Name";
             return "$i/$gzName"  if -e "$i/$gzName";
             return "$i/$bz2Name" if -e "$i/$bz2Name";
+	    return "$i/$lzmaName" if -e "$i/$lzmaName";
         }
     }
     return "";
diff -purN kdebase-3.5.7.orig/kioslave/man/kio_man.cpp kdebase-3.5.7/kioslave/man/kio_man.cpp
--- kdebase-3.5.7.orig/kioslave/man/kio_man.cpp	2007-09-13 18:41:35.000000000 +0200
+++ kdebase-3.5.7/kioslave/man/kio_man.cpp	2007-09-13 18:46:13.000000000 +0200
@@ -68,6 +68,8 @@ void stripExtension( QString *name )
         pos -= 4;
     else if ( name->find(".bz", -3) != -1 )
         pos -= 3;
+    else if ( name->find(".lzma", -5) != -1 )
+ 	pos -= 5;
 
     if ( pos > 0 )
         pos = name->findRev('.', pos-1);
@@ -1311,6 +1313,8 @@ void MANProtocol::showIndex(const QStrin
 	    end -= 2;
 	else if ( len >= 4 && strcmp( end-3, ".bz2" ) == 0 )
 	    end -= 4;
+	else if ( len >= 5 && strcmp( end-4, ".lzma" ) == 0 )
+  	    end -= 5;
 
 	while ( end >= begin && *end != '.' )
 	    end--;