diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # TidalCycles log of changes
 
+## 1.4.2 - Higger Tor
+
+* Fix for 'nudge'
+
 ## 1.4.1 - Carl Wark
 
 * improvements to handling of cps changes @yaxu #501
diff --git a/src/Sound/Tidal/Stream.hs b/src/Sound/Tidal/Stream.hs
--- a/src/Sound/Tidal/Stream.hs
+++ b/src/Sound/Tidal/Stream.hs
@@ -208,7 +208,7 @@
          filterOns | cSendParts config = id
                    | otherwise = filter eventHasOnset
            -- there should always be a whole (due to the eventHasOnset filter)
-         on e tempo' = (sched tempo' $ start $ wholeOrPart e) + eventNudge e
+         on e tempo' = (sched tempo' $ start $ wholeOrPart e)
          eventNudge e = fromJust $ getF $ fromMaybe (VF 0) $ Map.lookup "nudge" $ value e
          processCps :: T.Tempo -> [Event ControlMap] -> ([(T.Tempo, Event ControlMap)], T.Tempo)
          processCps tempo [] = ([], tempo)
@@ -219,12 +219,13 @@
                  (es', tempo'') = processCps tempo' es
          latency target = oLatency target + cFrameTimespan config + T.nudged tempo
          (tes, tempo') = processCps tempo es
-     mapM_ (\(Cx target udp) -> (do let ms = catMaybes $ map (\(t, e) -> do m <- toMessage config (on e t + latency target) target tempo e
+     mapM_ (\(Cx target udp) -> (do let ms = catMaybes $ map (\(t, e) -> do let nudge = eventNudge e
                                                                             let onset = on e t
+                                                                            m <- toMessage config (onset + nudge + latency target) target tempo e
                                                                             -- drop events that have gone out of frame (due to tempo
                                                                             -- changes during the frame)
                                                                             if (onset < frameEnd)
-                                                                              then Just (onset, m)
+                                                                              then Just (onset + nudge, m)
                                                                               else  Nothing
                                                              ) tes
                                     E.catch (mapM_ (send target (latency target) udp) ms)
diff --git a/src/Sound/Tidal/Version.hs b/src/Sound/Tidal/Version.hs
--- a/src/Sound/Tidal/Version.hs
+++ b/src/Sound/Tidal/Version.hs
@@ -1,4 +1,4 @@
 module Sound.Tidal.Version where
 
 tidal_version :: String
-tidal_version = "1.4.1"
+tidal_version = "1.4.2"
diff --git a/tidal.cabal b/tidal.cabal
--- a/tidal.cabal
+++ b/tidal.cabal
@@ -1,5 +1,5 @@
 name:                tidal
-version:             1.4.1
+version:             1.4.2
 synopsis:            Pattern language for improvised music
 -- description:
 homepage:            http://tidalcycles.org/
