     }
     
     func fetchPosts() {
-        UIApplication.sharedApplication().networkActivityIndicatorVisible = true;
+        UIApplication.sharedApplication().networkActivityIndicatorVisible = true
         
-        HNManager.sharedManager().loadPostsWithFilter(postFilter, completion: { posts in
-            if posts.0.count > 0 {
-                self.posts = posts.0 as [HNPost]
-                dispatch_async(dispatch_get_main_queue(), {
-                    self.tableView.reloadSections(NSIndexSet(index: 0), withRowAnimation: .Fade)
+        let postUrlAddition = HNManager.sharedManager().postUrlAddition
+        if !scrolledToBottom {
+            HNManager.sharedManager().loadPostsWithFilter(postFilter, { posts, _ in
+                if posts.count > 0 {
+                    self.posts = posts as [HNPost]
+                    dispatch_async(dispatch_get_main_queue(), {
+                        self.tableView.scrollRectToVisible(CGRectMake(0, 0, 1, 1), animated: false)
+                        self.tableView.reloadData()
+                        self.refreshControl.endRefreshing()
+                        UIApplication.sharedApplication().networkActivityIndicatorVisible = false
+                    })
+                } else {
+                    println("Could not fetch posts!")
                     self.refreshControl.endRefreshing()
                     UIApplication.sharedApplication().networkActivityIndicatorVisible = false
-                })
-            } else {
-                println("Could not fetch posts!")
-                self.refreshControl.endRefreshing()
-                UIApplication.sharedApplication().networkActivityIndicatorVisible = false;
-            }
-        })
+                }
+            })
+        } else if postUrlAddition != nil { // Swift makes me keep the "== true"...
+            HNManager.sharedManager().loadPostsWithUrlAddition(postUrlAddition, { posts, _ in
+                if posts.count > 0 {
+                    self.posts.extend(posts as [HNPost])
+                    dispatch_async(dispatch_get_main_queue(), {
+                        self.tableView.reloadData()
+                        self.tableView.flashScrollIndicators()
+                        self.scrolledToBottom = false
+                        self.refreshControl.endRefreshing()
+                        UIApplication.sharedApplication().networkActivityIndicatorVisible = false
+                    })
+                } else {
+                    println("Could not fetch posts!")
+                    self.scrolledToBottom = false
+                    self.refreshControl.endRefreshing()
+                    UIApplication.sharedApplication().networkActivityIndicatorVisible = false
+                }
+            })
+        }
     }
     
     func stylePostCellAsRead(cell: UITableViewCell) {

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        posts = []
        refreshControl = UIRefreshControl()
    }
    

    
    var postFilter = PostFilterType.Top
    var posts: [HNPost]!
    var nextPageId: String!
    var scrolledToBottom: Bool!
    var refreshControl: UIRefreshControl!
    
    @IBOutlet weak var tableView: UITableView!
