diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
index 3658095..b985d39 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
@@ -16,6 +16,7 @@
 SRC_URI[md5sum] = "37e9a2d664effe4efd44c0e1a20136de"
 SRC_URI[sha256sum] = "99906d9560cbdbc97e1855e7b0a7169f1e11983be3ac539140423f09debced82"
 
+COMPATIBLE_HOST_libc-musl = "null"
 EXTRA_OEMAKE = ""
 export WVLINK="${LD}"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch
deleted file mode 100644
index 232db9e..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 0e054339c1422168a7f4a9dcf090268053a33b1f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 20 Jul 2017 21:05:37 -0700
-Subject: [PATCH 2/5] wvtask: Dont use ucontext on non-glibc systems
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- utils/wvtask.cc | 24 ++++++++++++++++++++++++
- 1 file changed, 24 insertions(+)
-
-diff --git a/utils/wvtask.cc b/utils/wvtask.cc
-index cdcd544..c0bff7d 100644
---- a/utils/wvtask.cc
-+++ b/utils/wvtask.cc
-@@ -199,7 +199,9 @@ WvTaskMan::WvTaskMan()
-     stacktop = (char *)alloca(0);
-     
-     context_return = 0;
-+#ifdef __GLIBC__
-     assert(getcontext(&get_stack_return) == 0);
-+#endif
-     if (context_return == 0)
-     {
- 	// initial setup - start the stackmaster() task (never returns!)
-@@ -265,13 +267,17 @@ int WvTaskMan::run(WvTask &task, int val)
- 	state = &old_task->mystate;
-     
-     context_return = 0;
-+#ifdef __GLIBC__
-     assert(getcontext(state) == 0);
-+#endif
-     int newval = context_return;
-     if (newval == 0)
-     {
- 	// saved the state, now run the task.
-         context_return = val;
-+#ifdef __GLIBC__
-         setcontext(&task.mystate);
-+#endif
-         return -1;
-     }
-     else
-@@ -319,13 +325,17 @@ int WvTaskMan::yield(int val)
- #endif
- 		
-     context_return = 0;
-+#ifdef __GLIBC__
-     assert(getcontext(&current_task->mystate) == 0);
-+#endif
-     int newval = context_return;
-     if (newval == 0)
-     {
- 	// saved the task state; now yield to the toplevel.
-         context_return = val;
-+#ifdef __GLIBC__
-         setcontext(&toplevel);
-+#endif
-         return -1;
-     }
-     else
-@@ -341,7 +351,9 @@ int WvTaskMan::yield(int val)
- void WvTaskMan::get_stack(WvTask &task, size_t size)
- {
-     context_return = 0;
-+#ifdef __GLIBC__
-     assert(getcontext(&get_stack_return) == 0);
-+#endif
-     if (context_return == 0)
-     {
- 	assert(magic_number == -WVTASK_MAGIC);
-@@ -371,7 +383,9 @@ void WvTaskMan::get_stack(WvTask &task, size_t size)
- 	// initial setup
- 	stack_target = &task;
- 	context_return = size/1024 + (size%1024 > 0);
-+#ifdef __GLIBC__
- 	setcontext(&stackmaster_task);
-+#endif
-     }
-     else
-     {
-@@ -409,7 +423,9 @@ void WvTaskMan::_stackmaster()
- 	assert(magic_number == -WVTASK_MAGIC);
- 	
-         context_return = 0;
-+#ifdef __GLIBC__
-         assert(getcontext(&stackmaster_task) == 0);
-+#endif
-         val = context_return;
- 	if (val == 0)
- 	{
-@@ -419,7 +435,9 @@ void WvTaskMan::_stackmaster()
- 	    // all current stack allocations) and go back to get_stack
- 	    // (or the constructor, if that's what called us)
-             context_return = 1;
-+#ifdef __GLIBC__
-             setcontext(&get_stack_return);
-+#endif
- 	}
- 	else
- 	{
-@@ -474,7 +492,9 @@ void WvTaskMan::do_task()
- 	
-     // back here from longjmp; someone wants stack space.    
-     context_return = 0;
-+#ifdef __GLIBC__
-     assert(getcontext(&task->mystate) == 0);
-+#endif
-     if (context_return == 0)
-     {
- 	// done the setjmp; that means the target task now has
-@@ -510,7 +530,9 @@ void WvTaskMan::do_task()
-                 }
-                 else
-                 {
-+#ifdef __GLIBC__
-                     assert(getcontext(&task->func_call) == 0);
-+#endif
-                     task->func_call.uc_stack.ss_size = task->stacksize;
-                     task->func_call.uc_stack.ss_sp = task->stack;
-                     task->func_call.uc_stack.ss_flags = 0;
-@@ -521,9 +543,11 @@ void WvTaskMan::do_task()
-                             (void (*)(void))call_func, 1, task);
- 
-                     context_return = 0;
-+#ifdef __GLIBC__
-                     assert(getcontext(&task->func_return) == 0);
-                     if (context_return == 0)
-                         setcontext(&task->func_call);
-+#endif
-                 }
- 		
- 		// the task's function terminated.
--- 
-2.13.3
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
index b9f62da..b220f9c 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
@@ -15,7 +15,6 @@
            file://gcc-6.patch \
            file://argp.patch \
            file://0001-Check-for-limits.h-during-configure.patch \
-           file://0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch \
            file://0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch \
            file://0004-wvcrash-Replace-use-of-basename-API.patch \
            file://0005-check-for-libexecinfo-during-configure.patch \
@@ -28,6 +27,8 @@
 SRC_URI[md5sum] = "2760dac31a43d452a19a3147bfde571c"
 SRC_URI[sha256sum] = "8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633"
 
+COMPATIBLE_HOST_libc-musl = "null"
+
 inherit autotools-brokensep pkgconfig
 
 TARGET_CFLAGS_append = " -fno-tree-dce -fno-optimize-sibling-calls"
