diff --git a/README.md b/README.md
index 851ddb4..c955a1d 100644
--- a/README.md
+++ b/README.md
@@ -132,7 +132,7 @@
 
 ```bash
 # Download a base image
-docker import base
+docker pull base
 
 # Run an interactive shell in the base image,
 # allocate a tty, attach stdin and stdout
diff --git a/commands.go b/commands.go
index 0a6bff5..869581c 100644
--- a/commands.go
+++ b/commands.go
@@ -413,8 +413,13 @@
 	}
 
 	// If the login failed, abort
-	if srv.runtime.authConfig == nil {
-		return fmt.Errorf("Please login prior to push. ('docker login')")
+	if srv.runtime.authConfig == nil || srv.runtime.authConfig.Username == "" {
+		if err := srv.CmdLogin(stdin, stdout, args...); err != nil {
+			return err
+		}
+		if srv.runtime.authConfig == nil || srv.runtime.authConfig.Username == "" {
+			return fmt.Errorf("Please login prior to push. ('docker login')")
+		}
 	}
 
 	var remote string
diff --git a/container.go b/container.go
index f900599..2a7d633 100644
--- a/container.go
+++ b/container.go
@@ -76,6 +76,15 @@
 	if err := cmd.Parse(args); err != nil {
 		return nil, err
 	}
+	parsedArgs := cmd.Args()
+	runCmd := []string{}
+	image := ""
+	if len(parsedArgs) >= 1 {
+		image = cmd.Arg(0)
+	}
+	if len(parsedArgs) > 1 {
+		runCmd = parsedArgs[1:]
+	}
 	config := &Config{
 		Ports:     fl_ports,
 		User:      *fl_user,
@@ -84,8 +93,8 @@
 		Memory:    *fl_memory,
 		Detach:    *fl_detach,
 		Env:       fl_env,
-		Cmd:       cmd.Args()[1:],
-		Image:     cmd.Arg(0),
+		Cmd:       runCmd,
+		Image:     image,
 	}
 	return config, nil
 }
diff --git a/deb/debian/control b/deb/debian/control
index 35a842d..5fd3f36 100644
--- a/deb/debian/control
+++ b/deb/debian/control
@@ -10,7 +10,7 @@
 Package: dotcloud-docker
 Architecture: amd64
 Provides: dotcloud-docker
-Depends: lxc, wget, bsdtar, curl, sqlite3
+Depends: lxc, wget, bsdtar, curl, libsqlite3-0
 Conflicts: docker
 Description: A process manager with superpowers
     It encapsulates heterogeneous payloads in Standard Containers, and runs
diff --git a/registry.go b/registry.go
index 8e14d48..8076e31 100644
--- a/registry.go
+++ b/registry.go
@@ -32,7 +32,7 @@
 func NewMultipleImgJson(src []byte) ([]*Image, error) {
 	ret := []*Image{}
 
-	dec := json.NewDecoder(strings.NewReader(strings.Replace(string(src), "null", "\"\"", -1)))
+	dec := json.NewDecoder(strings.NewReader(string(src)))
 	for {
 		m := &Image{}
 		if err := dec.Decode(m); err == io.EOF {
diff --git a/utils.go b/utils.go
index ce722f2..b9b2303 100644
--- a/utils.go
+++ b/utils.go
@@ -7,11 +7,12 @@
 	"fmt"
 	"github.com/dotcloud/docker/rcli"
 	"io"
-	"log"
 	"net/http"
 	"os"
 	"os/exec"
 	"path/filepath"
+	"runtime"
+	"strings"
 	"sync"
 	"time"
 )
@@ -43,9 +44,19 @@
 // If Docker is in damon mode, also send the debug info on the socket
 func Debugf(format string, a ...interface{}) {
 	if rcli.DEBUG_FLAG {
-		log.Printf(format, a...)
+
+		// Retrieve the stack infos
+		_, file, line, ok := runtime.Caller(1)
+		if !ok {
+			file = "<unknown>"
+			line = -1
+		} else {
+			file = file[strings.LastIndex(file, "/")+1:]
+		}
+
+		fmt.Fprintf(os.Stderr, fmt.Sprintf("[debug] %s:%d %s\n", file, line, format), a...)
 		if rcli.CLIENT_SOCKET != nil {
-			fmt.Fprintf(rcli.CLIENT_SOCKET, log.Prefix()+format, a...)
+			fmt.Fprintf(rcli.CLIENT_SOCKET, fmt.Sprintf("[debug] %s:%d %s\n", file, line, format), a...)
 		}
 	}
 }
