diff --git a/webrtc/modules/desktop_capture/desktop_geometry.cc b/webrtc/modules/desktop_capture/desktop_geometry.cc
index 051e62633..5811a8dac 100644
--- a/webrtc/modules/desktop_capture/desktop_geometry.cc
+++ b/webrtc/modules/desktop_capture/desktop_geometry.cc
@@ -18,7 +18,7 @@ void DesktopRect::IntersectWith(const DesktopRect& rect) {
   left_ = std::max(left(), rect.left());
   top_ = std::max(top(), rect.top());
   right_ = std::min(right(), rect.right());
-  bottom_ = std::min(bottom(), rect.top());
+  bottom_ = std::min(bottom(), rect.bottom());
   if (is_empty()) {
     left_ = 0;
     top_ = 0;
diff --git a/webrtc/modules/desktop_capture/desktop_region.cc b/webrtc/modules/desktop_capture/desktop_region.cc
index b843034be..71398b31c 100644
--- a/webrtc/modules/desktop_capture/desktop_region.cc
+++ b/webrtc/modules/desktop_capture/desktop_region.cc
@@ -47,7 +47,8 @@ void DesktopRegion::IntersectWith(const DesktopRect& rect) {
     remove_empty_rects = remove_empty_rects | it->is_empty();
   }
   if (remove_empty_rects) {
-    RectsList new_rects(rects_.size());
+    RectsList new_rects;
+    new_rects.reserve(rects_.size());
     for (RectsList::iterator it = rects_.begin(); it != rects_.end(); ++it) {
       if (!it->is_empty())
         new_rects.push_back(*it);