diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetAdapter.java b/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetAdapter.java
index fc104e680e6a9211e9850e93be53508f054744f5..85b0f26a27545b9644f2a85157b9887a22a509a8 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetAdapter.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetAdapter.java
@@ -313,9 +313,9 @@ public class OpenHABWidgetAdapter extends RecyclerView.Adapter<OpenHABWidgetAdap
         }
     }
 
-    public void setSelectedPosition(int position) {
+    public boolean setSelectedPosition(int position) {
         if (mSelectedPosition == position) {
-            return;
+            return false;
         }
         if (mSelectedPosition >= 0) {
             notifyItemChanged(mSelectedPosition);
@@ -324,6 +324,7 @@ public class OpenHABWidgetAdapter extends RecyclerView.Adapter<OpenHABWidgetAdap
         if (position >= 0) {
             notifyItemChanged(position);
         }
+        return true;
     }
 
     @Override
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetListFragment.java b/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetListFragment.java
index e2ca0e5da67ec62861148d1b38d9306725d334fc..6b7128c00eda4c10c88239f1206606188480be7b 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetListFragment.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetListFragment.java
@@ -273,17 +273,19 @@ public class OpenHABWidgetListFragment extends Fragment
         if (openHABWidgetAdapter == null) {
             return;
         }
-        openHABWidgetAdapter.setSelectedPosition(-1);
         if (highlightedPageLink != null) {
             for (int i = 0; i < openHABWidgetAdapter.getItemCount(); i++) {
                 OpenHABLinkedPage page = openHABWidgetAdapter.getItem(i).linkedPage();
                 if (page != null && highlightedPageLink.equals(page.link())) {
-                    openHABWidgetAdapter.setSelectedPosition(i);
-                    mLayoutManager.scrollToPosition(i);
-                    break;
+                    if (openHABWidgetAdapter.setSelectedPosition(i)) {
+                        mLayoutManager.scrollToPosition(i);
+                    }
+                    return;
                 }
             }
         }
+        // We didn't find a matching page link, so unselect everything
+        openHABWidgetAdapter.setSelectedPosition(-1);
     }
 
     public void update(String pageTitle, List<OpenHABWidget> widgets) {