diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 159d008e6e6e5126166bceb297dcd4cd3bfd41a5..53ad8eafeef40056a35884c419bd029edf23dd58 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -1500,13 +1500,15 @@
 			var comparator = FileList.Comparators[sort] || FileList.Comparators.name;
 			this._sort = sort;
 			this._sortDirection = (direction === 'desc')?'desc':'asc';
-			this._sortComparator = comparator;
+			this._sortComparator = function(fileInfo1, fileInfo2) {
+				if(fileInfo1.isFavorite && !fileInfo2.isFavorite) {
+					return -1;
+				} else if(!fileInfo1.isFavorite && fileInfo2.isFavorite) {
+					return 1;
+				}
+				return direction === 'asc' ? comparator(fileInfo1, fileInfo2) : -comparator(fileInfo1, fileInfo2);
+			};
 
-			if (direction === 'desc') {
-				this._sortComparator = function(fileInfo1, fileInfo2) {
-					return -comparator(fileInfo1, fileInfo2);
-				};
-			}
 			this.$el.find('thead th .sort-indicator')
 				.removeClass(this.SORT_INDICATOR_ASC_CLASS)
 				.removeClass(this.SORT_INDICATOR_DESC_CLASS)
diff --git a/core/js/files/client.js b/core/js/files/client.js
index 572f7879e17cfa495bf5e0233ed77cc895dd9c37..ee3efbd55170228e513f00d4051c594f372e6008 100644
--- a/core/js/files/client.js
+++ b/core/js/files/client.js
@@ -287,6 +287,13 @@
 				data.hasPreview = true;
 			}
 
+			var isFavorite = props['{' + Client.NS_OWNCLOUD + '}favorite'];
+			if (!_.isUndefined(isFavorite)) {
+				data.isFavorite = isFavorite === '1';
+			} else {
+				data.isFavorite = false;
+			}
+
 			var contentType = props['{' + Client.NS_DAV + '}getcontenttype'];
 			if (!_.isUndefined(contentType)) {
 				data.mimetype = contentType;
diff --git a/core/js/files/fileinfo.js b/core/js/files/fileinfo.js
index 1fc239da47aec566136ddf925e5b5fec2185bdb4..7c8e4586448493f6e53f810658099cb0fc5bd524 100644
--- a/core/js/files/fileinfo.js
+++ b/core/js/files/fileinfo.js
@@ -132,7 +132,12 @@
 		/**
 		 * @type boolean
 		 */
-		hasPreview: true
+		hasPreview: true,
+
+		/**
+		 * @type boolean
+		 */
+		isFavorite: false
 	};
 
 	if (!OC.Files) {