@@ -77,10 +77,13 @@ Elm.Native.Keyboard.make = function(elm) {
7777
7878 function keySignal(f) {
7979 var signal = A2(Signal.lift, f, keysDown);
80− // what's the significance of these two following lines? -jpm
80+ // must set the default number of kids to make it possible to filter
81+ // these signals if they are not actually used.
8182 keysDown.defaultNumberOfKids += 1;
82− signal.defaultNumberOfKids = 0;
83− return signal;
83+ signal.defaultNumberOfKids = 1;
84+ var filtered = Signal.dropRepeats(signal)
85+ filtered.defaultNumberOfKids = 0;
86+ return filtered;
8487 }
8588
8689 function dir(up, down, left, right) {