diff --git a/disposable.cabal b/disposable.cabal
--- a/disposable.cabal
+++ b/disposable.cabal
@@ -1,5 +1,5 @@
 name:                disposable
-version:             0.2.0.0
+version:             0.2.0.1
 synopsis:            Allows storing different resource-releasing actions together.
 description:         SomeDisposable aloows storing different resource releasing actions togther in a container.
                      This library is useful for queueing up GHCJS.Foreign.Callback together to be released
@@ -24,6 +24,8 @@
   default-language:    Haskell2010
   if impl(ghcjs)
       build-depends: ghcjs-base
+  if !impl(ghcjs)
+      build-depends: ghcjs-base-stub >= 0.1.0.2 && < 1
 
 source-repository head
   type:     git
diff --git a/src/Control/Disposable.hs b/src/Control/Disposable.hs
--- a/src/Control/Disposable.hs
+++ b/src/Control/Disposable.hs
@@ -13,10 +13,7 @@
 import Data.Foldable
 import Data.Semigroup
 import qualified GHC.Generics as G
-
-#ifdef __GHCJS__
 import qualified GHCJS.Foreign.Callback as J
-#endif
 
 -- | A 'Disposable' is something with some resources to release
 class Disposable a where
@@ -43,13 +40,11 @@
   default disposing :: (G.Generic a, GDisposing (G.Rep a)) => a -> SomeDisposable
   disposing x = DisposeList . D.toList . gDisposing $ G.from x
 
-#ifdef __GHCJS__
 instance Disposable (J.Callback a) where
     dispose = J.releaseCallback
 
 instance Disposing (J.Callback a) where
     disposing = Dispose
-#endif
 
 -- | Generics instance basically traverses the data tree
 -- and expects the values to be all instances of 'Disposable'
