diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt
index b0b50ffb7e188646c767b600e0a3e97db4003fcd..3d836f317fe96c2bedf7c2bb18629564d3bae6e9 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt
@@ -9,6 +9,7 @@ import android.content.ClipboardManager
 import android.content.Intent
 import android.os.Bundle
 import android.support.design.widget.FloatingActionButton
+import android.support.v4.widget.SwipeRefreshLayout
 import android.support.v7.widget.LinearLayoutManager
 import android.support.v7.widget.RecyclerView
 import android.view.*
@@ -38,6 +39,9 @@ class MessageListFragment : ServiceBoundFragment() {
   @BindView(R.id.scrollDown)
   lateinit var scrollDown: FloatingActionButton
 
+  @BindView(R.id.swipeRefreshLayout)
+  lateinit var swipeRefreshLayout: SwipeRefreshLayout
+
   @Inject
   lateinit var appearanceSettings: AppearanceSettings
 
@@ -176,6 +180,11 @@ class MessageListFragment : ServiceBoundFragment() {
       }
     }
 
+    swipeRefreshLayout.setColorSchemeColors(*senderColors)
+    swipeRefreshLayout.setOnRefreshListener {
+      loadMore()
+    }
+
     var isScrolling = false
     messageList.addOnScrollListener(
       object : RecyclerView.OnScrollListener() {
@@ -242,6 +251,8 @@ class MessageListFragment : ServiceBoundFragment() {
           if (first != null) {
             if (previousVisible == visible) {
               loadMore()
+            } else {
+              swipeRefreshLayout.isRefreshing = false
             }
 
             previousVisible = visible
diff --git a/app/src/main/res/layout/fragment_messages.xml b/app/src/main/res/layout/fragment_messages.xml
index 86ae1bcc52ac85d1f79cb8721aff7a4ecf60dcec..abb48fc544e1a1a76a64639d424ac20d261b1ccf 100644
--- a/app/src/main/res/layout/fragment_messages.xml
+++ b/app/src/main/res/layout/fragment_messages.xml
@@ -7,12 +7,19 @@
   android:background="?attr/colorBackground"
   tools:showIn="@layout/activity_main">
 
-  <android.support.v7.widget.RecyclerView
-    android:id="@+id/messages"
+  <android.support.v4.widget.SwipeRefreshLayout
+    android:id="@+id/swipeRefreshLayout"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:stackFromEnd="true"
-    tools:listitem="@layout/widget_chatmessage_plain" />
+    android:layout_height="match_parent">
+
+    <android.support.v7.widget.RecyclerView
+      android:id="@+id/messages"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      app:stackFromEnd="true"
+      tools:listitem="@layout/widget_chatmessage_plain" />
+
+  </android.support.v4.widget.SwipeRefreshLayout>
 
   <android.support.design.widget.FloatingActionButton
     android:id="@+id/scrollDown"