diff --git a/apps/files_archive/js/archive.js b/apps/files_archive/js/archive.js
index ec316c7bf2c3dd0d2e45cd887a3554341dbe2042..531eb61c01af4fc60150699d110e21249e306c11 100644
--- a/apps/files_archive/js/archive.js
+++ b/apps/files_archive/js/archive.js
@@ -11,5 +11,9 @@ $(document).ready(function() {
 			window.location='index.php?dir='+encodeURIComponent($('#dir').val()).replace(/%2F/g, '/')+'/'+encodeURIComponent(filename);
 		});
 		FileActions.setDefault('application/zip','Open');
+		FileActions.register('application/x-gzip','Open','',function(filename){
+			window.location='index.php?dir='+encodeURIComponent($('#dir').val()).replace(/%2F/g, '/')+'/'+encodeURIComponent(filename);
+		});
+		FileActions.setDefault('application/x-gzip','Open');
 	}
 });
diff --git a/apps/files_archive/lib/storage.php b/apps/files_archive/lib/storage.php
index 598b85f0dbec2d982860f7da7871e33a6a9f70b0..700d963304230d7834423ca20dd6a83cbc955370 100644
--- a/apps/files_archive/lib/storage.php
+++ b/apps/files_archive/lib/storage.php
@@ -125,7 +125,7 @@ class OC_Filestorage_Archive extends OC_Filestorage_Common{
 			self::$rootView=new OC_FilesystemView('');
 		}
 		self::$enableAutomount=false;//prevent recursion
-		$supported=array('zip');
+		$supported=array('zip','tar.gz','tar.bz2','tgz');
 		foreach($supported as $type){
 			$ext='.'.$type.'/';
 			if(($pos=strpos(strtolower($path),$ext))!==false){