diff --git a/IPython/html/static/tree/js/notebooklist.js b/IPython/html/static/tree/js/notebooklist.js
index 40c3f04..05d223e 100644
--- a/IPython/html/static/tree/js/notebooklist.js
+++ b/IPython/html/static/tree/js/notebooklist.js
@@ -162,7 +162,26 @@ define([
* directories.
* @param {String} error_msg An error message
*/
+
+
+ var type_order = {'directory':0,'notebook':1,'file':2};
+
NotebookList.prototype.draw_notebook_list = function (list, error_msg) {
+ list.content.sort(function(a, b) {
+ if (type_order[a['type']] < type_order[b['type']]) {
+ return -1;
+ }
+ if (type_order[a['type']] > type_order[b['type']]) {
+ return 1;
+ }
+ if (a['name'] < b['name']) {
+ return -1;
+ }
+ if (a['name'] > b['name']) {
+ return 1;
+ }
+ return 0;
+ });
var message = error_msg || 'Notebook list empty.';
var item = null;
var model = null;