diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9c494fc53d..d407ee3ca6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,13 @@
 
 -->
 
+## 12.x.x (unreleased)
+
+### Improvements
+
+### Bugfixes
+- クライアント: ウィジェットを追加できない問題を修正
+
 ## 12.93.1 (2021/10/23)
 
 ### Bugfixes
diff --git a/src/client/components/form/select.vue b/src/client/components/form/select.vue
index 30ccfd312b..9efaf02697 100644
--- a/src/client/components/form/select.vue
+++ b/src/client/components/form/select.vue
@@ -24,7 +24,7 @@
 </template>
 
 <script lang="ts">
-import { defineComponent, onMounted, onUnmounted, nextTick, ref, watch, computed, toRefs } from 'vue';
+import { defineComponent, onMounted, onUnmounted, nextTick, ref, watch, computed, toRefs, VNode } from 'vue';
 import MkButton from '@client/components/ui/button.vue';
 import * as os from '@client/os';
 
@@ -140,6 +140,16 @@ export default defineComponent({
 			const menu = [];
 			let options = context.slots.default();
 
+			const pushOption = (option: VNode) => {
+				menu.push({
+					text: option.children,
+					active: v.value === option.props.value,
+					action: () => {
+						v.value = option.props.value;
+					},
+				});
+			};
+
 			for (const optionOrOptgroup of options) {
 				if (optionOrOptgroup.type === 'optgroup') {
 					const optgroup = optionOrOptgroup;
@@ -148,23 +158,16 @@ export default defineComponent({
 						text: optgroup.props.label,
 					});
 					for (const option of optgroup.children) {
-						menu.push({
-							text: option.children,
-							active: v.value === option.props.value,
-							action: () => {
-								v.value = option.props.value;
-							},
-						});
+						pushOption(option);
+					}
+				} else if (Array.isArray(optionOrOptgroup.children)) { // 何故かフラグメントになってくることがある
+					const fragment = optionOrOptgroup;
+					for (const option of fragment.children) {
+						pushOption(option);
 					}
 				} else {
 					const option = optionOrOptgroup;
-					menu.push({
-						text: option.children,
-						active: v.value === option.props.value,
-						action: () => {
-							v.value = option.props.value;
-						},
-					});
+					pushOption(option);
 				}
 			}