     }
 
     override func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat {
-        let post = posts![indexPath.section]
+        let post = posts[indexPath.section]
         if indexPath.row == self.tableView(tableView, numberOfRowsInSection: indexPath.section) - 1 {
-            let webView = self.postsWebViewCache![post.id]!
-            return webView.documentHeight()
+            if let height = self.webViewHeightCache[post.id] {
+                return height
+            }
+            return 0
         }
 
         let postPhotos = post.photos()

        }
    }

    override func numberOfSectionsInTableView(tableView: UITableView!) -> Int {
        if let posts = self.posts {
            return posts.count
        }
        return 0
    }

    override func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
        let post = self.posts![section]
        let postPhotos = post.photos()
        if postPhotos.count == 1 {
            return 2

                for post in posts {
                    if let content = post.body() as NSString? {
                        let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 1))
                        let htmlString = content.htmlStringWithTumblrStyle(self.view.frame.width)

                        webView.delegate = self
                        webView.loadHTMLString(htmlString, baseURL: NSURL(string: ""))
        
                        self.postsWebViewCache[webView] = post.id
                    }
                    
                    println(post.json)
                }

                self.posts = posts
