diff --git a/runtimes/google/naming/namespace/all_test.go b/runtimes/google/naming/namespace/all_test.go
index bbac581..5d707c5 100644
--- a/runtimes/google/naming/namespace/all_test.go
+++ b/runtimes/google/naming/namespace/all_test.go
@@ -1,10 +1,8 @@
 package namespace_test
 
 import (
-	"reflect"
 	"runtime"
 	"runtime/debug"
-	"sort"
 	"sync"
 	"testing"
 	"time"
@@ -29,13 +27,24 @@
 	t.Fatal(string(debug.Stack()))
 }
 
-func compare(t *testing.T, caller, name string, got, want []string) {
-	if len(got) != len(want) {
-		boom(t, "%s: %q returned wrong # servers: got %v, want %v, servers: got %v, want %v", caller, name, len(got), len(want), got, want)
+// N squared but who cares, this is a little test.
+// Ignores dups.
+func contains(container, contained []string) bool {
+L:
+	for _, d := range contained {
+		for _, r := range container {
+			if r == d {
+				continue L
+			}
+		}
+		return false
 	}
-	sort.Strings(got)
-	sort.Strings(want)
-	if !reflect.DeepEqual(got, want) {
+	return true
+}
+
+func compare(t *testing.T, caller, name string, got, want []string) {
+	// Compare ignoring dups.
+	if !contains(got, want) || !contains(want, got) {
 		boom(t, "%s: %q: got %v, want %v", caller, name, got, want)
 	}
 }
@@ -421,9 +430,7 @@
 		expected []string
 	}{
 		{"*", tln},
-		// TODO(cnicolaou): the glob that doesn't match a name should fail.
-		//
-		{"x", []string{"x"}},
+		{"x", []string{}},
 		{"m*", []string{"mt1", "mt2", "mt3", "mt4", "mt5"}},
 		{"mt[2,3]", []string{"mt2", "mt3"}},
 		{"*z", []string{"baz"}},
diff --git a/runtimes/google/naming/namespace/glob.go b/runtimes/google/naming/namespace/glob.go
index b251c63..4b3d296 100644
--- a/runtimes/google/naming/namespace/glob.go
+++ b/runtimes/google/naming/namespace/glob.go
@@ -26,11 +26,9 @@
 //   pelems    the pattern to match relative to the mounted subtree.
 //   l         the list to add results to.
 //   recursive true to continue below the matched pattern
-// We return a bool foundRoot which indicates whether the empty name "" was found on a target server.
-func (ns *namespace) globAtServer(ctx context.T, qe *queuedEntry, pattern *glob.Glob, l *list.List) (bool, error) {
+func (ns *namespace) globAtServer(ctx context.T, qe *queuedEntry, pattern *glob.Glob, l *list.List) error {
 	server := qe.me
 	pstr := pattern.String()
-	foundRoot := false
 	vlog.VI(2).Infof("globAtServer(%v, %v)", *server, pstr)
 
 	var lastErr error
@@ -43,68 +41,60 @@
 		if pattern.Finished() {
 			_, n := naming.SplitAddressName(s.Server)
 			if strings.HasPrefix(n, "//") {
-				return false, nil
+				return nil
 			}
 		}
 
-		mtServers, err := ns.ResolveToMountTable(ctx, s.Server)
+		// Don't further resolve s.Server.
+		s := naming.MakeTerminal(s.Server)
+		callCtx, _ := ctx.WithTimeout(callTimeout)
+		client := ns.rt.Client()
+		call, err := client.StartCall(callCtx, s, "Glob", []interface{}{pstr})
 		if err != nil {
 			lastErr = err
-			continue
+			continue // try another instance
 		}
 
-		for _, s := range mtServers {
-			callCtx, _ := ctx.WithTimeout(callTimeout)
-			client := ns.rt.Client()
-			call, err := client.StartCall(callCtx, s, "Glob", []interface{}{pstr})
+		// At this point we're commited to a server since it answered tha call.
+		for {
+			var e mountEntry
+			err := call.Recv(&e)
+			if err == io.EOF {
+				return nil
+			}
 			if err != nil {
-				lastErr = err
-				continue // try another instance
-			}
-			// At this point we have a server that can handle the RPC.
-			for {
-				var e mountEntry
-				err := call.Recv(&e)
-				if err == io.EOF {
-					return foundRoot, nil
-				}
-				if err != nil {
-					return foundRoot, err
-				}
-				if e.Name == "" {
-					foundRoot = true
-				}
-
-				// Prefix the results with the path of the mount point.
-				e.Name = naming.Join(server.Name, e.Name)
-
-				// Convert to the ever so slightly different name.MountTable version of a MountEntry
-				// and add it to the list.
-				x := &queuedEntry{
-					me: &naming.MountEntry{
-						Name:    e.Name,
-						Servers: convertServers(e.Servers),
-					},
-					depth: qe.depth,
-				}
-				// x.depth is the number of severs we've walked through since we've gone
-				// recursive (i.e. with pattern length of 0).
-				if pattern.Len() == 0 {
-					if x.depth++; x.depth > ns.maxRecursiveGlobDepth {
-						continue
-					}
-				}
-				l.PushBack(x)
+				return err
 			}
 
-			if err := call.Finish(); err != nil {
-				return foundRoot, err
+			// Prefix the results with the path of the mount point.
+			e.Name = naming.Join(server.Name, e.Name)
+
+			// Convert to the ever so slightly different name.MountTable version of a MountEntry
+			// and add it to the list.
+			x := &queuedEntry{
+				me: &naming.MountEntry{
+					Name:    e.Name,
+					Servers: convertServers(e.Servers),
+				},
+				depth: qe.depth,
 			}
-			return foundRoot, nil
+			// x.depth is the number of severs we've walked through since we've gone
+			// recursive (i.e. with pattern length of 0).
+			if pattern.Len() == 0 {
+				if x.depth++; x.depth > ns.maxRecursiveGlobDepth {
+					continue
+				}
+			}
+			l.PushBack(x)
 		}
+
+		if err := call.Finish(); err != nil {
+			return err
+		}
+		return nil
 	}
 
-	return foundRoot, lastErr
+	return lastErr
 }
 
 // Glob implements naming.MountTable.Glob.
@@ -118,9 +108,10 @@
 
 	// Add constant components of pattern to the servers' addresses and
 	// to the prefix.
-	var prefixElements []string
-	prefixElements, g = g.SplitFixedPrefix()
-	prefix := strings.Join(prefixElements, "/")
+	//var prefixElements []string
+	//prefixElements, g = g.SplitFixedPrefix()
+	//prefix := strings.Join(prefixElements, "/")
+	prefix := ""
 	if len(root) != 0 {
 		prefix = naming.JoinAddressName(root, prefix)
 	}
@@ -171,6 +162,7 @@
 	// tables to be traversed to the list 'l'.
 	l := list.New()
 	l.PushBack(&queuedEntry{me: &naming.MountEntry{Name: "", Servers: convertStringsToServers(servers)}})
+	atRoot := true
 
 	// Perform a breadth first search of the name graph.
 	for le := l.Front(); le != nil; le = l.Front() {
@@ -181,7 +173,7 @@
 		suffix := pattern.Split(depth(e.me.Name))
 
 		// Perform a glob at the server.
-		foundRoot, err := ns.globAtServer(ctx, e, suffix, l)
+		err := ns.globAtServer(ctx, e, suffix, l)
 
 		// We want to output this entry if:
 		// 1. There was a real error, we return whatever name gave us the error.
@@ -194,10 +186,11 @@
 
 		// 2. The current name fullfills the pattern and further servers did not respond
 		//    with "".  That is, we want to prefer foo/ over foo.
-		if suffix.Len() == 0 && !foundRoot {
+		if suffix.Len() == 0 && !atRoot {
 			x := *e.me
 			x.Name = naming.Join(prefix, x.Name)
 			reply <- x
 		}
+		atRoot = false
 	}
 }
diff --git a/tools/naming/simulator/ambiguity.scr b/tools/naming/simulator/ambiguity.scr
index 1df3410..f20b97b 100644
--- a/tools/naming/simulator/ambiguity.scr
+++ b/tools/naming/simulator/ambiguity.scr
@@ -2,7 +2,7 @@
 #
 # mountMT("/s1/a", "/s2/b")
 # mountMT("/s2/b", "/s3/c")
-# mount("/s3/c", "/s4/d")
+# mount("/s3/c", "/s4")
 #
 # Bogdan points out that: 'we will actually have d == "" in the echo example
 # below (since Serve only mounts endpoints without suffixes)'
@@ -17,8 +17,7 @@
 #
 # "s1/a", ["/s2/b"(mountpoint)]
 # "s1/a", ["/s3/c"(mountpoint)]
-# "s1/a", ["/s4/d"(mountpoint)]
-# "s1/a", []
+# "s1/a", ["/s4//"(mountpoint)]
 
 root
 eval $_
@@ -33,16 +32,26 @@
 set s3=$MT_NAME
 
 mount $s1/a $s2/b 1h
+wait $_
 
 mount $s2/b $s3/c 1h
+wait $_
 
 echoServer "Echo" $s3/c
 set es_h=$_
 
+# Returns the root and three mounts at s1/a.
 ls $s1/...
-wait $_
+set l=$_
+eval $l
+assert $RN 4
+wait $l
 
+# Returns three mounts at s1/a.
 ls $s1/a
-wait $_
+set l=$_
+eval $l
+assert $RN 3
+wait $l
 
 stop $es_h
diff --git a/tools/naming/simulator/mt_complex.scr b/tools/naming/simulator/mt_complex.scr
index 3a23946..6fb3532 100644
--- a/tools/naming/simulator/mt_complex.scr
+++ b/tools/naming/simulator/mt_complex.scr
@@ -40,11 +40,11 @@
 assert $RN 3
 wait $l
 
-# ls /... does not.. - it just finds itself... seems a little weird.
+# ls /... is meaningless, finds nothing
 ls /...
 set l=$_
 eval $l
-assert $RN 1
+assert $RN 0
 wait $l
 
 # a rooted glob finds all of the mount points, include an entry for the root
diff --git a/tools/naming/simulator/mt_simple.scr b/tools/naming/simulator/mt_simple.scr
index c09e1eb..1dfb805 100644
--- a/tools/naming/simulator/mt_simple.scr
+++ b/tools/naming/simulator/mt_simple.scr
@@ -31,7 +31,7 @@
 ls $root/...
 set l=$_
 eval $l
-assert $RN 5
+assert $RN 7
 
 ls -l $root/...
 wait $_
