diff --git a/lib/private/installer.php b/lib/private/installer.php
index f9d0b36afb4ace7aac3bc00d52b5e9eadb632ce5..c5a09349629d7d7394b74a613f7e251b17ad0406 100644
--- a/lib/private/installer.php
+++ b/lib/private/installer.php
@@ -235,9 +235,10 @@ class OC_Installer{
 			throw new \Exception($l->t("No source specified when installing app"));
 		}
 
-		//download the file if necesary
+		//download the file if necessary
 		if($data['source']=='http') {
-			$path=OC_Helper::tmpFile();
+			$pathInfo = pathinfo($data['href']);
+			$path=OC_Helper::tmpFile('.' . $pathInfo['extension']);
 			if(!isset($data['href'])) {
 				throw new \Exception($l->t("No href specified when installing app from http"));
 			}
@@ -251,13 +252,7 @@ class OC_Installer{
 
 		//detect the archive type
 		$mime=OC_Helper::getMimeType($path);
-		if($mime=='application/zip') {
-			rename($path, $path.'.zip');
-			$path.='.zip';
-		}elseif($mime=='application/x-gzip') {
-			rename($path, $path.'.tgz');
-			$path.='.tgz';
-		}else{
+		if ($mime !=='application/zip' && $mime !== 'application/x-gzip') {
 			throw new \Exception($l->t("Archives of type %s are not supported", array($mime)));
 		}