diff --git a/yackage-upload.hs b/yackage-upload.hs
--- a/yackage-upload.hs
+++ b/yackage-upload.hs
@@ -9,11 +9,12 @@
 
 main = do
     args <- getArgs
-    let (url, pass, file) =
+    let (file, url, pass) =
             case args of
-                [x, y] -> (x, "", y)
+                [x] -> (x, "http://localhost:3500/", "")
+                [x, y] -> (x, y, "")
                 [x, y, z] -> (x, y, z)
-                _ -> error "Usage: yackage-upload <url> [password] <file>"
+                _ -> error "Usage: yackage-upload <file> [url] [password]"
     req <- parseUrl url
     body <- mkBody pass file
     let req' = req
diff --git a/yackage.cabal b/yackage.cabal
--- a/yackage.cabal
+++ b/yackage.cabal
@@ -1,5 +1,5 @@
 Name:                yackage
-Version:             0.4.0
+Version:             0.5.0
 Synopsis:            Personal Hackage replacement for testing new packages.
 Description:
     This package installs a yackage executable that runs a simplistic hackage-like server. It allows you to upload packages produced via cabal sdist and install them via cabal. The trick is to add the yackage repository to your cabal config file, with a line such as:
@@ -22,8 +22,8 @@
 Executable yackage
   Main-is:             yackage.hs
   Build-depends:       base >= 4 && < 5
-                     , yesod-core >= 0.10 && < 0.11
-                     , warp >= 1.1 && < 1.2
+                     , yesod-core >= 1.0 && < 1.1
+                     , warp >= 1.2 && < 1.3
                      , Cabal
                      , bytestring
                      , text
@@ -33,10 +33,10 @@
                      , directory
                      , yaml
                      , cmdargs
-                     , wai >= 1.1 && < 1.2
+                     , wai >= 1.2 && < 1.3
                      , transformers
                      , hamlet
-                     , yesod-form >= 0.4 && < 0.5
+                     , yesod-form >= 1.0 && < 1.1
                      , http-types >= 0.6 && < 0.7
                      , blaze-html
                      , vector
@@ -46,7 +46,7 @@
   Main-is:             yackage-upload.hs
   if flag(upload)
       Build-depends:       base >= 4 && < 5
-                         , http-conduit >= 1.2 && < 1.3
+                         , http-conduit >= 1.4 && < 1.5
                          , blaze-builder >= 0.2.1.3 && < 0.4
                          , bytestring
   else
diff --git a/yackage.hs b/yackage.hs
--- a/yackage.hs
+++ b/yackage.hs
@@ -113,7 +113,7 @@
     ps <- getYesod >>= liftIO . readMVar . packages >>= return . Map.toList
     defaultLayout $ do
         setTitle $ toHtml $ ytitle y
-        addHamlet [hamlet|
+        toWidget [hamlet|
 <h1>#{ytitle y}
 <form method="post" enctype="multipart/form-data">
     <div>
@@ -184,7 +184,7 @@
     getCabal (Next entry rest)
         | reverse (take 6 $ reverse $ entryPath entry) == ".cabal" = entryContent entry
         | otherwise = getCabal rest
-    getCabal (Fail s) = error $ "Invalid tarball: " ++ s
+    getCabal (Fail s) = error $ "Invalid tarball: " ++ show s
 
 getIndexR = do
     path <- rootDir `fmap` getYesod
