diff --git a/gnome-shell/upstream/data/gnome-shell-icons.gresource.xml b/gnome-shell/upstream/data/gnome-shell-icons.gresource.xml
index db65673b41..f15d0c0e81 100644
--- a/gnome-shell/upstream/data/gnome-shell-icons.gresource.xml
+++ b/gnome-shell/upstream/data/gnome-shell-icons.gresource.xml
@@ -37,6 +37,7 @@
scalable/actions/shell-focus-top-bar-symbolic-rtl.svg
scalable/actions/shell-focus-windows-symbolic.svg
scalable/status/background-app-ghost-symbolic.svg
+ scalable/status/check-symbolic.svg
scalable/status/keyboard-brightness-high-symbolic.svg
scalable/status/keyboard-brightness-medium-symbolic.svg
scalable/status/keyboard-brightness-off-symbolic.svg
@@ -45,6 +46,7 @@
scalable/status/keyboard-hide-symbolic.svg
scalable/status/keyboard-layout-symbolic.svg
scalable/status/keyboard-shift-symbolic.svg
+ scalable/status/keyboard-zwnj-symbolic.svg
scalable/status/message-indicator-symbolic.svg
scalable/status/no-notifications-symbolic.svg
scalable/status/screen-privacy-disabled-symbolic.svg
diff --git a/gnome-shell/upstream/data/icons/hicolor/scalable/apps/org.gnome.Shell.CaptivePortal.svg b/gnome-shell/upstream/data/icons/hicolor/scalable/apps/org.gnome.Shell.CaptivePortal.svg
new file mode 100644
index 0000000000..3a05fcde6b
--- /dev/null
+++ b/gnome-shell/upstream/data/icons/hicolor/scalable/apps/org.gnome.Shell.CaptivePortal.svg
@@ -0,0 +1,46 @@
+
+
diff --git a/gnome-shell/upstream/data/icons/hicolor/symbolic/apps/org.gnome.Shell.CaptivePortal-symbolic.svg b/gnome-shell/upstream/data/icons/hicolor/symbolic/apps/org.gnome.Shell.CaptivePortal-symbolic.svg
new file mode 100644
index 0000000000..4c3a49db6a
--- /dev/null
+++ b/gnome-shell/upstream/data/icons/hicolor/symbolic/apps/org.gnome.Shell.CaptivePortal-symbolic.svg
@@ -0,0 +1,8 @@
+
+
diff --git a/gnome-shell/upstream/data/icons/meson.build b/gnome-shell/upstream/data/icons/meson.build
index eff6e4b530..277df017b2 100644
--- a/gnome-shell/upstream/data/icons/meson.build
+++ b/gnome-shell/upstream/data/icons/meson.build
@@ -1 +1,9 @@
-install_subdir('hicolor', install_dir: icondir)
+excluded_icons=[]
+if not have_portal_helper
+ excluded_icons += [
+ 'scalable/apps/org.gnome.Shell.CaptivePortal.svg',
+ 'symbolic/apps/org.gnome.Shell.CaptivePortal-symbolic.svg',
+ ]
+endif
+install_subdir('hicolor',
+ install_dir: icondir, exclude_files: excluded_icons)
diff --git a/gnome-shell/upstream/data/icons/scalable/status/check-symbolic.svg b/gnome-shell/upstream/data/icons/scalable/status/check-symbolic.svg
new file mode 100644
index 0000000000..27c620d499
--- /dev/null
+++ b/gnome-shell/upstream/data/icons/scalable/status/check-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/gnome-shell/upstream/data/icons/scalable/status/keyboard-zwnj-symbolic.svg b/gnome-shell/upstream/data/icons/scalable/status/keyboard-zwnj-symbolic.svg
new file mode 100644
index 0000000000..7204f474c1
--- /dev/null
+++ b/gnome-shell/upstream/data/icons/scalable/status/keyboard-zwnj-symbolic.svg
@@ -0,0 +1,5 @@
+
+
+