@@ -425,23 +425,34 @@ function updateProps(node, curr, next) {
425425 var removed = false;
426426
427427 // update hover handlers
428− if (nextProps.hover.ctor === '_Tuple0') {
429− removed = true;
430− removeHover(node);
431− } else if (node.elm_hover_handler) {
432− node.elm_hover_handler = nextProps.hover;
433− } else {
434− addHover(node, nextProps.hover);
428+ if (currProps.hover.ctor === '_Tuple0') {
429+ if (nextProps.hover.ctor !== '_Tuple0') {
430+ addHover(node, nextProps.hover);
431+ }
432+ }
433+ else {
434+ if (nextProps.hover.ctor === '_Tuple0') {
435+ removed = true;
436+ removeHover(node);
437+ }
438+ else {
439+ node.elm_hover_handler = nextProps.hover;
440+ }
435441 }
436442
437443 // update click handlers
438− if (nextProps.click.ctor === '_Tuple0') {
439− removed = true;
440− removeClick(node);
441− } else if (node.elm_click_handler) {
442− node.elm_click_handler = nextProps.click;
443− } else {
444− addClick(node, nextProps.click);
444+ if (currProps.click.ctor === '_Tuple0') {
445+ if (nextProps.click.ctor !== '_Tuple0') {
446+ addClick(node, nextProps.click);
447+ }
448+ }
449+ else {
450+ if (nextProps.click.ctor === '_Tuple0') {
451+ removed = true;
452+ removeClick(node);
453+ } else {
454+ node.elm_click_handler = nextProps.click;
455+ }
445456 }
446457
447458 // stop capturing clicks if