diff --git a/dispatch.go b/dispatch.go
index 0d98d7b86bb410d636f6315b554863d12590f7bf..9e66a56158484fe509b0da4092dfd5ac8ef0a70d 100644
--- a/dispatch.go
+++ b/dispatch.go
@@ -2,6 +2,7 @@ package stt
 
 import (
 	"container/list"
+	"fmt"
 	"log"
 	"sync"
 )
@@ -159,10 +160,11 @@ func (d *dispatcher) getStream(uri, lang string) (*streamManager, error) {
 	d.mx.Lock()
 	defer d.mx.Unlock()
 
-	s, ok := d.streams[uri]
+	key := fmt.Sprintf("%s:%s", lang, uri)
+	s, ok := d.streams[key]
 	if !ok {
 		s = newStreamManager(uri, lang, d.mmgr)
-		d.streams[uri] = s
+		d.streams[key] = s
 	}
 	return s, nil
 }