diff --git a/lib/private/archive.php b/lib/private/archive.php
index a62f22cf6d75c155a449604f2ad2371445bab692..562172ddefaa9986f7df5f79b47fa5e77183ad5b 100644
--- a/lib/private/archive.php
+++ b/lib/private/archive.php
@@ -20,11 +20,8 @@ abstract class OC_Archive{
 			case '.gz':
 			case '.bz':
 			case '.bz2':
-				if(strpos($path, '.tar.')) {
-					return new OC_Archive_TAR($path);
-				}
-				break;
 			case '.tgz':
+			case '.tar':
 				return new OC_Archive_TAR($path);
 		}
 	}
diff --git a/lib/private/archive/tar.php b/lib/private/archive/tar.php
index 21a995d9e50f7bd06c779764414f89f0a6c8f306..3f64b4c5064d0a0fadfdf7fd05169fe7e47bf7c7 100644
--- a/lib/private/archive/tar.php
+++ b/lib/private/archive/tar.php
@@ -40,12 +40,14 @@ class OC_Archive_TAR extends OC_Archive{
 		if(strpos($file, '.')) {
 			$extension=substr($file, strrpos($file, '.'));
 			switch($extension) {
-				case 'gz':
-				case 'tgz':
+				case '.gz':
+				case '.tgz':
 					return self::GZIP;
-				case 'bz':
-				case 'bz2':
+				case '.bz':
+				case '.bz2':
 					return self::BZIP;
+				case '.tar':
+					return self::PLAIN;
 				default:
 					return self::PLAIN;
 			}