diff --git a/lib/archive/tar.php b/lib/archive/tar.php
index 944a0ac4ba4e13d5ba738e9daff66027763e1551..c8b3d5e6266480618faafdf8ad614552c9c8bea8 100644
--- a/lib/archive/tar.php
+++ b/lib/archive/tar.php
@@ -79,7 +79,7 @@ class OC_Archive_TAR extends OC_Archive{
 		if($this->fileExists($path)){
 			$this->remove($path);
 		}
-		if(file_exists($source)){
+		if($source and $source[0]=='/' and file_exists($source)){
 			$header=array();
 			$dummy='';
 			$this->tar->_openAppend();
diff --git a/lib/archive/zip.php b/lib/archive/zip.php
index b2d6674d63977142a6f5dedf6372cf77c9e87ed2..c1a5c35738bfd6ef0fdabd78cdb259133761aaad 100644
--- a/lib/archive/zip.php
+++ b/lib/archive/zip.php
@@ -36,7 +36,7 @@ class OC_Archive_ZIP extends OC_Archive{
 	 * @return bool
 	 */
 	function addFile($path,$source=''){
-		if(file_exists($source)){
+		if($source and $source[0]=='/' and file_exists($source)){
 			$result=$this->zip->addFile($source,$path);
 		}else{
 			$result=$this->zip->addFromString($path,$source);