diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2.7.0.2 - 120401
+* added some inlining annotations (courtesy of Takano Akio)
+
 2.7.0.1 - 120131
 * made externalMulti thread-safe (courtesy of Takano Akio)
 
diff --git a/FRP/Elerea/Clocked.hs b/FRP/Elerea/Clocked.hs
--- a/FRP/Elerea/Clocked.hs
+++ b/FRP/Elerea/Clocked.hs
@@ -245,6 +245,9 @@
         sig = S $ readIORef ref >>= \v -> case v of
             Ready x     -> sample x
             Updated _ x -> return x
+        {-# NOINLINE sig #-}
+        -- NOINLINE to prevent sig from getting inlined into the
+        -- argument position of mkWeak.
 
     updateActions <- mkWeak sig (upd,fin) Nothing
     modifyIORef pool (USig updateActions:)
diff --git a/FRP/Elerea/Param.hs b/FRP/Elerea/Param.hs
--- a/FRP/Elerea/Param.hs
+++ b/FRP/Elerea/Param.hs
@@ -185,6 +185,9 @@
       sig = S $ readIORef ref >>= \v -> case v of
               Ready x     -> sample x
               Updated _ x -> return x
+      {-# NOINLINE sig #-}
+      -- NOINLINE to prevent sig from getting inlined into the
+      -- argument position of mkWeak.
 
   updateActions <- mkWeak sig (upd,fin) Nothing
   modifyIORef pool (updateActions:)
diff --git a/FRP/Elerea/Simple.hs b/FRP/Elerea/Simple.hs
--- a/FRP/Elerea/Simple.hs
+++ b/FRP/Elerea/Simple.hs
@@ -176,6 +176,9 @@
       sig = S $ readIORef ref >>= \v -> case v of
               Ready x     -> sample x
               Updated _ x -> return x
+      {-# NOINLINE sig #-}
+      -- NOINLINE to prevent sig from getting inlined into the
+      -- argument position of mkWeak.
 
   updateActions <- mkWeak sig (upd,fin) Nothing
   modifyIORef pool (updateActions:)
diff --git a/elerea.cabal b/elerea.cabal
--- a/elerea.cabal
+++ b/elerea.cabal
@@ -1,5 +1,5 @@
 Name:                elerea
-Version:             2.7.0.1
+Version:             2.7.0.2
 Cabal-Version:       >= 1.2
 Synopsis:            A minimalistic FRP library
 Category:            reactivity, FRP
