diff --git a/Yesod/Widget.hs b/Yesod/Widget.hs
--- a/Yesod/Widget.hs
+++ b/Yesod/Widget.hs
@@ -152,7 +152,7 @@
 instance render ~ RY master => ToWidgetHead sub master (render -> Css) where
     toWidgetHead = toWidget
 instance render ~ RY master => ToWidgetHead sub master (render -> Javascript) where
-    toWidgetHead = toWidget
+    toWidgetHead j = toWidgetHead $ \r -> H.script $ preEscapedLazyText $ renderJavascriptUrl r j
 instance ToWidgetHead sub master Html where
     toWidgetHead = toWidgetHead . const
 
diff --git a/test/YesodCoreTest/Widget.hs b/test/YesodCoreTest/Widget.hs
--- a/test/YesodCoreTest/Widget.hs
+++ b/test/YesodCoreTest/Widget.hs
@@ -26,6 +26,7 @@
 /whamlet WhamletR GET
 /towidget TowidgetR GET
 /auto AutoR GET
+/jshead JSHeadR GET
 |]
 
 instance Yesod Y where
@@ -77,12 +78,16 @@
   where
     someHtml = [shamlet|somehtml|]
 
+getJSHeadR :: Handler RepHtml
+getJSHeadR = defaultLayout $ toWidgetHead [julius|alert("hello");|]
+
 widgetTest :: Spec
 widgetTest = describe "Test.Widget"
     [ it "addJuliusBody" case_addJuliusBody
     , it "whamlet" case_whamlet
     , it "two letter lang codes" case_two_letter_lang
     , it "automatically applies toWidget" case_auto
+    , it "toWidgetHead puts JS in head" case_jshead
     ]
 
 runner :: Session () -> IO ()
@@ -116,3 +121,10 @@
         , requestHeaders = [("Accept-Language", "es")]
         }
     assertBody "<!DOCTYPE html>\n<html><head><title></title></head><body>somehtml</body></html>" res
+
+case_jshead :: IO ()
+case_jshead = runner $ do
+    res <- request defaultRequest
+        { pathInfo = ["jshead"]
+        }
+    assertBody "<!DOCTYPE html>\n<html><head><title></title><script>alert(\"hello\");</script></head><body></body></html>" res
diff --git a/yesod-core.cabal b/yesod-core.cabal
--- a/yesod-core.cabal
+++ b/yesod-core.cabal
@@ -1,5 +1,5 @@
 name:            yesod-core
-version:         1.0.1.2
+version:         1.0.1.3
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
