diff -bu ./EV.xs~ ./EV.xs
--- ./EV.xs~	2015-07-13 21:46:06.000000000 +0200
+++ ./EV.xs	2016-01-12 13:23:29.000000000 +0100
@@ -150,7 +150,13 @@
   w = (ev_watcher *)SvPVX (self);
 
   ev_init (w, cv ? e_cb : 0);
-
+  if (!loop) {
+    if (!default_loop_sv) {
+      evapi.default_loop = ev_default_loop(0);
+      default_loop_sv = sv_bless (newRV_noinc (newSViv (PTR2IV (evapi.default_loop))), stash_loop);
+    }
+    loop = default_loop_sv;
+  }
   w->loop    = SvREFCNT_inc (SvRV (loop));
   w->e_flags = WFLAG_KEEPALIVE;
   w->data    = 0;