diff --git a/ChangeLog b/ChangeLog
index 6d93283f3e6ea503ed79ad0fcbfe837dfeb42cab..26ce6f4e8ad7a810890d88b4334b9907e1ea1281 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@ svn - ?
 	- Browsing keys now work while file info window is displayed
 	- Current directory is assumed when no directory is specified
 	- Size graph uses the apparent size if that is displayed
+	- Items are ordered by displayed size rather than disk usage
 
 1.4 - 2008-09-10
 	- Removed the startup window
diff --git a/src/browser.c b/src/browser.c
index be95cd54f22ee47d3eac19943301a1e7d82ef719..7127ea240909bfa5b29bd587799582cc00f2e70a 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -68,10 +68,17 @@ int cmp(struct dir *x, struct dir *y) {
 
   if(bflags & BF_NAME)
     r = strcmp(a->name, b->name);
-  if(r == 0)
-    r = a->size > b->size ? 1 : (a->size == b->size ? 0 : -1);
-  if(r == 0)
-    r = a->asize > b->asize ? 1 : (a->asize == b->asize ? 0 : -1);
+  if(bflags & BF_AS) {
+    if(r == 0)
+      r = a->asize > b->asize ? 1 : (a->asize == b->asize ? 0 : -1);
+    if(r == 0)
+      r = a->size > b->size ? 1 : (a->size == b->size ? 0 : -1);
+  } else {
+    if(r == 0)
+      r = a->size > b->size ? 1 : (a->size == b->size ? 0 : -1);
+    if(r == 0)
+      r = a->asize > b->asize ? 1 : (a->asize == b->asize ? 0 : -1);
+  }
   if(r == 0)
     r = strcmp(x->name, y->name);
   return(r);
@@ -486,7 +493,7 @@ void showBrowser(void) {
         else
           goto endloop;
     }
-    if((last != bcur || (oldflags | BF_HIDE | BF_AS | BF_INFO) != (bflags | BF_HIDE | BF_AS | BF_INFO)) && bflags & BF_SORT)
+    if((last != bcur || (oldflags | BF_HIDE | BF_INFO) != (bflags | BF_HIDE | BF_INFO)) && bflags & BF_SORT)
       bflags -= BF_SORT;
     
     drawBrowser(change);