diff --git a/app/src/main/java/com/google/reviewit/ReviewChangesFragment.java b/app/src/main/java/com/google/reviewit/ReviewChangesFragment.java
index e667928..18d8281 100644
--- a/app/src/main/java/com/google/reviewit/ReviewChangesFragment.java
+++ b/app/src/main/java/com/google/reviewit/ReviewChangesFragment.java
@@ -17,6 +17,7 @@
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.support.annotation.LayoutRes;
+import android.support.v4.widget.SwipeRefreshLayout;
 import android.util.Log;
 import android.util.TypedValue;
 import android.view.Menu;
@@ -62,6 +63,19 @@
   }
 
   private void init() {
+    SwipeRefreshLayout swipeRefreshLayout =
+        (SwipeRefreshLayout) v(R.id.swipeRefreshLayout);
+    swipeRefreshLayout.setColorSchemeColors(R.color.progressBar);
+    swipeRefreshLayout.setRefreshing(true);
+    swipeRefreshLayout.setOnRefreshListener(
+        new SwipeRefreshLayout.OnRefreshListener() {
+          @Override
+          public void onRefresh() {
+            getApp().getQueryHandler().reset();
+            display(true);
+          }
+        });
+
     v(R.id.reloadButton).setOnClickListener(new View.OnClickListener() {
       public void onClick(View v) {
         reloadQuery();
@@ -89,6 +103,10 @@
   }
 
   private void display() {
+    display(false);
+  }
+
+  private void display(final boolean clear) {
     if (!isOnline()) {
       setInvisible(v(R.id.progress));
       setGone(v(R.id.initialProgress));
@@ -100,6 +118,7 @@
     }
 
     new AsyncTask<Void, Void, ChangeListData>() {
+      private SwipeRefreshLayout swipeRefreshLayout;
       private View progress;
       private View initialProgress;
       private View nextPageProgress;
@@ -110,6 +129,7 @@
       @Override
       protected void onPreExecute() {
         super.onPreExecute();
+        swipeRefreshLayout = (SwipeRefreshLayout) v(R.id.swipeRefreshLayout);
         progress = v(R.id.progress);
         initialProgress = v(R.id.initialProgress);
         nextPageProgress = v(R.id.nextPageProgress);
@@ -151,6 +171,7 @@
         getActivity().invalidateOptionsMenu();
         setInvisible(progress);
         setGone(initialProgress, reloadButton, nextPageProgress);
+        swipeRefreshLayout.setRefreshing(false);
 
         if (changeListData.error != null) {
           statusText.setText(changeListData.error);
@@ -159,6 +180,9 @@
 
         if (!changeListData.changeList.isEmpty()) {
           setGone(statusText);
+          if (clear) {
+            changeList.removeAllViews();
+          }
           for (Change change : changeListData.changeList) {
             ChangeEntry changeEntry = new ChangeEntry(getContext());
             changeEntry.init(getApp(), change);
diff --git a/app/src/main/res/layout/content_review_changes.xml b/app/src/main/res/layout/content_review_changes.xml
index 35e87b5..8d2d1c1 100644
--- a/app/src/main/res/layout/content_review_changes.xml
+++ b/app/src/main/res/layout/content_review_changes.xml
@@ -21,57 +21,63 @@
 
   <include layout="@layout/progress"/>
 
-  <ScrollView
-    android:id="@+id/scrollView"
+  <android.support.v4.widget.SwipeRefreshLayout
+    android:id="@+id/swipeRefreshLayout"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <LinearLayout
-      android:orientation="vertical"
+    <ScrollView
+      android:id="@+id/scrollView"
       android:layout_width="match_parent"
       android:layout_height="match_parent">
 
-      <TextView
-        android:id="@+id/statusText"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center_horizontal"
-        android:layout_marginTop="15dp"
-        android:textSize="24sp"
-        android:text="@string/loading"/>
-
-      <ProgressBar
-        android:id="@+id/initialProgress"
-        android:layout_marginTop="20dp"
-        android:layout_width="match_parent"
-        android:layout_height="150dp"
-        android:indeterminate="true"/>
-
-      <ImageView
-        android:id="@+id/reloadButton"
-        android:layout_width="match_parent"
-        android:layout_height="150dp"
-        android:layout_marginTop="20dp"
-        android:gravity="center_horizontal"
-        android:clickable="true"
-        android:src="@drawable/ic_refresh_black_48dp"
-        android:visibility="gone"/>
-
       <LinearLayout
-        android:id="@+id/changeList"
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
-      </LinearLayout>
 
-      <ProgressBar
-        android:id="@+id/nextPageProgress"
-        android:layout_marginTop="3dp"
-        android:layout_marginBottom="3dp"
-        android:layout_width="match_parent"
-        android:layout_height="40dp"
-        android:indeterminate="true"
-        android:visibility="gone"/>
-    </LinearLayout>
-  </ScrollView>
+        <TextView
+          android:id="@+id/statusText"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
+          android:gravity="center_horizontal"
+          android:layout_marginTop="15dp"
+          android:textSize="24sp"
+          android:text="@string/loading"/>
+
+        <ProgressBar
+          android:id="@+id/initialProgress"
+          android:layout_marginTop="20dp"
+          android:layout_width="match_parent"
+          android:layout_height="150dp"
+          android:indeterminate="true"/>
+
+        <ImageView
+          android:id="@+id/reloadButton"
+          android:layout_width="match_parent"
+          android:layout_height="150dp"
+          android:layout_marginTop="20dp"
+          android:gravity="center_horizontal"
+          android:clickable="true"
+          android:src="@drawable/ic_refresh_black_48dp"
+          android:visibility="gone"/>
+
+        <LinearLayout
+          android:id="@+id/changeList"
+          android:orientation="vertical"
+          android:layout_width="match_parent"
+          android:layout_height="match_parent">
+        </LinearLayout>
+
+        <ProgressBar
+          android:id="@+id/nextPageProgress"
+          android:layout_marginTop="3dp"
+          android:layout_marginBottom="3dp"
+          android:layout_width="match_parent"
+          android:layout_height="40dp"
+          android:indeterminate="true"
+          android:visibility="gone"/>
+      </LinearLayout>
+    </ScrollView>
+  </android.support.v4.widget.SwipeRefreshLayout>
 </LinearLayout>
