diff --git a/apps/files_external/lib/Lib/Storage/Google.php b/apps/files_external/lib/Lib/Storage/Google.php
index 2a1ff768e2c81407003c67d215b7e895337268bb..49fde7d066f7d71a907125cb28964d3d733a5b8d 100644
--- a/apps/files_external/lib/Lib/Storage/Google.php
+++ b/apps/files_external/lib/Lib/Storage/Google.php
@@ -97,6 +97,9 @@ class Google extends \OC\Files\Storage\Common {
 	private function getDriveFile($path) {
 		// Remove leading and trailing slashes
 		$path = trim($path, '/');
+		if ($path === '.') {
+			$path = '';
+		}
 		if (isset($this->driveFiles[$path])) {
 			return $this->driveFiles[$path];
 		} else if ($path === '') {
@@ -138,7 +141,7 @@ class Google extends \OC\Files\Storage\Common {
 						if ($pos !== false) {
 							$pathWithoutExt = substr($path, 0, $pos);
 							$file = $this->getDriveFile($pathWithoutExt);
-							if ($file) {
+							if ($file && $this->isGoogleDocFile($file)) {
 								// Switch cached Google_Service_Drive_DriveFile to the correct index
 								unset($this->driveFiles[$pathWithoutExt]);
 								$this->driveFiles[$path] = $file;
@@ -208,6 +211,17 @@ class Google extends \OC\Files\Storage\Common {
 		}
 	}
 
+	/**
+	 * Returns whether the given drive file is a Google Doc file
+	 *
+	 * @param \Google_Service_Drive_DriveFile
+	 *
+	 * @return true if the file is a Google Doc file, false otherwise
+	 */
+	private function isGoogleDocFile($file) {
+		return $this->getGoogleDocExtension($file->getMimeType()) !== '';
+	}
+
 	public function mkdir($path) {
 		if (!$this->is_dir($path)) {
 			$parentFolder = $this->getDriveFile(dirname($path));
diff --git a/apps/files_external/tests/Storage/GoogleTest.php b/apps/files_external/tests/Storage/GoogleTest.php
index 7684fec84298b036e038d59631ceb8c2e824854e..eb19cc463b1fbe09dbd534eeee10b74d9a612d04 100644
--- a/apps/files_external/tests/Storage/GoogleTest.php
+++ b/apps/files_external/tests/Storage/GoogleTest.php
@@ -60,4 +60,13 @@ class GoogleTest extends \Test\Files\Storage\Storage {
 
 		parent::tearDown();
 	}
+
+	public function testSameNameAsFolderWithExtension() {
+		$this->assertTrue($this->instance->mkdir('testsamename'));
+		$this->assertEquals(13, $this->instance->file_put_contents('testsamename.txt', 'some contents'));
+		$this->assertEquals('some contents', $this->instance->file_get_contents('testsamename.txt'));
+		$this->assertTrue($this->instance->is_dir('testsamename'));
+		$this->assertTrue($this->instance->unlink('testsamename.txt'));
+		$this->assertTrue($this->instance->rmdir('testsamename'));
+	}
 }