      end
    end
  
-@@ -16,7 +20,19 @@ def switch
+@@ -16,7 +21,21 @@ def switch
      @out = @finish
    end
  

-      @finish = $stdout
+    if MSpecScript.config[:verbose]
+      @examples_last = 0
+      @finish = out.nil? ? $stdout : File.open(out, "w")
     else
-      @finish = File.open out, "w"

+      @pid_alpha = {}
+      @ttl_files = @files.length
+      wid = @ttl_files.to_s.length
+      @fmt = "[%#{wid}d/%#{wid}d]  %1s  %4s   %5s   %s\n"
+    end
+    @files.shuffle! if MSpec.randomize?
     @success = true
   end
 
@@ -28,6 +37,16 @@ def handle(child, message)
     case message
     when '.'
       @formatter.unload
+      if MSpecScript.config[:verbose]
+        while chunk = (child.read_nonblock(64) rescue nil)
+          message += chunk
+        end
+        message.gsub!(/^\.+|\.+$/, '')
+        vals = message.split '.'
+        fn = @last_files[child][/spec\/ruby\/(\S+)$/,1]
+        ::STDOUT.write format(@fmt, @cntr, @ttl_files ,@pid_alpha[child], vals[0], vals[1], fn)
+        @cntr += 1
+      end
       send_new_file_or_quit(child)
     else
       if message == nil
@@ -79,9 +98,17 @@ def run
 
     puts @children.map { |child| child.gets }.uniq
     @formatter.start
-    begin
-      @children.each { |child| send_new_file_or_quit(child) }
 
+    if MSpecScript.config[:verbose]
+      wid = @ttl_files.to_s.length
+      STDOUT.puts "   #{' ' * wid * 2} PID Examples  Exp  File"
+    end
+
+    begin
+      @children.each_with_index { |child, idx|
+        @pid_alpha[child] = (idx + 65).chr if MSpecScript.config[:verbose]
+        send_new_file_or_quit(child)
