diff --git a/package/madwifi/patches/381-ibss_modes.patch b/package/madwifi/patches/381-ibss_modes.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1ce295eea391da5eb3fe5869fd0a4d199393131a
--- /dev/null
+++ b/package/madwifi/patches/381-ibss_modes.patch
@@ -0,0 +1,23 @@
+--- a/ath/if_ath.c
++++ b/ath/if_ath.c
+@@ -1260,7 +1260,10 @@
+ 	case IEEE80211_M_IBSS:
+ 		if ((sc->sc_nvaps != 0) && (ic->ic_opmode == IEEE80211_M_STA))
+ 			return NULL;
+-		ic_opmode = opmode;
++		if (ic->ic_opmode == IEEE80211_M_HOSTAP)
++			ic_opmode = ic->ic_opmode;
++		else
++			ic_opmode = opmode;
+ 		break;
+ 	case IEEE80211_M_AHDEMO:
+ 	case IEEE80211_M_MONITOR:
+@@ -1455,7 +1458,7 @@
+ 	 * frames.  Other modes carry over directly to the HAL.
+ 	 */
+ 	if (ic->ic_opmode == IEEE80211_M_AHDEMO)
+-		sc->sc_opmode = HAL_M_IBSS;
++		sc->sc_opmode = HAL_M_HOSTAP;
+ 	else
+ 		sc->sc_opmode = (HAL_OPMODE) ic->ic_opmode;	/* NB: compatible */
+