diff --git a/apps/files_versions/ajax/getVersions.php b/apps/files_versions/ajax/getVersions.php
index df29f401629604677637acfd8284a40acbddaf59..4cc1c4288985760429695e0ecdb5cc725b15c96d 100644
--- a/apps/files_versions/ajax/getVersions.php
+++ b/apps/files_versions/ajax/getVersions.php
@@ -5,7 +5,8 @@ $source = $_GET['source'];
 $start = $_GET['start'];
 list ($uid, $filename) = OCA\Files_Versions\Storage::getUidAndFilename($source);
 $count = 5; //show the newest revisions
-if( ($versions = OCA\Files_Versions\Storage::getVersions($uid, $filename, $source)) ) {
+$versions = OCA\Files_Versions\Storage::getVersions($uid, $filename, $source);
+if( $versions ) {
 
 	$endReached = false;
 	if (count($versions) <= $start+$count) {
diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php
index 8463bd9482c1edc115ce3280819e2f1444a30083..328ed4305f4ce3f53fec6e2a451edc5b28c32885 100644
--- a/apps/files_versions/lib/versions.php
+++ b/apps/files_versions/lib/versions.php
@@ -264,7 +264,7 @@ class Storage {
 	 * @param string $uid user id from the owner of the file
 	 * @param string $filename file to find versions of, relative to the user files dir
 	 * @param string $userFullPath
-	 * @returns array
+	 * @returns array versions newest version first
 	 */
 	public static function getVersions($uid, $filename, $userFullPath = '') {
 		$versions = array();
@@ -397,12 +397,13 @@ class Storage {
 			}
 		}
 
-		ksort($versions);
+		// newest version first
+		krsort($versions);
 
 		$result = array();
 
 		foreach ($versions as $key => $value) {
-			$size = $view->filesize($value['path']);
+			$size = $view->filesize(self::VERSIONS_ROOT.'/'.$value['path'].'.v'.$value['timestamp']);
 			$filename = $value['path'];
 
 			$result['all'][$key]['version'] = $value['timestamp'];
@@ -428,8 +429,6 @@ class Storage {
 		$size = 0;
 		$toDelete = array();  // versions we want to delete
 
-		$versions = array_reverse($versions); // newest version first
-
 		$interval = 1;
 		$step = Storage::$max_versions_per_interval[$interval]['step'];
 		if (Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'] == -1) {
diff --git a/apps/files_versions/tests/versions.php b/apps/files_versions/tests/versions.php
index 713f7796c9bde9505367aa6d029eead942e7db67..25490aa1a0433fcfccb71d3aa753dd173b84425a 100644
--- a/apps/files_versions/tests/versions.php
+++ b/apps/files_versions/tests/versions.php
@@ -40,7 +40,7 @@ class Test_Files_Versioning extends \PHPUnit_Framework_TestCase {
 		$startTime = 5000000;
 
 		$testClass = new VersionStorageToTest();
-		list($deleted, $size) = $testClass->callProtectedGetExpireList($startTime, array_reverse($versions));
+		list($deleted, $size) = $testClass->callProtectedGetExpireList($startTime, $versions);
 
 		// we should have deleted 16 files each of the size 1
 		$this->assertEquals($sizeOfAllDeletedFiles, $size);