diff --git a/src/output/output_json.cpp b/src/output/output_json.cpp
index 6a430e02..a05f02ee 100644
--- a/src/output/output_json.cpp
+++ b/src/output/output_json.cpp
@@ -50,6 +50,12 @@ namespace Mist {
 
   void OutJSON::onHTTP(){
     std::string method = H.method;
+    jsonp = "";
+    if (H.GetVar("callback") != ""){jsonp = H.GetVar("callback");}
+    if (H.GetVar("jsonp") != ""){jsonp = H.GetVar("jsonp");}
+    if (H.GetVar("track") != ""){
+      selectedTracks.insert(JSON::Value(H.GetVar("track")).asInt());
+    }
     
     H.Clean();
     H.setCORSHeaders();
@@ -62,18 +68,17 @@ namespace Mist {
     }
     
     first = true;
-    jsonp = "";
-    if (H.GetVar("callback") != ""){jsonp = H.GetVar("callback");}
-    if (H.GetVar("jsonp") != ""){jsonp = H.GetVar("jsonp");}
     initialize();
-    for (std::map<unsigned int,DTSC::Track>::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++){
-      if (it->second.type == "meta" ){
-        selectedTracks.insert(it->first);
+    if (!selectedTracks.size()){
+      for (std::map<unsigned int,DTSC::Track>::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++){
+        if (it->second.type == "meta" ){
+          selectedTracks.insert(it->first);
+        }
       }
     }
-    seek(0);
     parseData = true;
     wantRequest = false;
   }
 
 }
+
diff --git a/src/output/output_srt.cpp b/src/output/output_srt.cpp
index 31ba5e03..bfade273 100644
--- a/src/output/output_srt.cpp
+++ b/src/output/output_srt.cpp
@@ -57,7 +57,10 @@ namespace Mist {
 
   void OutProgressiveSRT::onHTTP(){
     std::string method = H.method;
-    
+    std::string url = H.url;
+    if (H.GetVar("track") != ""){
+      selectedTracks.insert(JSON::Value(H.GetVar("track")).asInt());
+    }
     H.Clean();
     H.setCORSHeaders();
     if(method == "OPTIONS" || method == "HEAD"){
@@ -68,12 +71,8 @@ namespace Mist {
       return;
     }
     lastNum = 0;
-    webVTT = (H.url.find(".webvtt") != std::string::npos);
-    if (H.GetVar("track") != ""){
-      selectedTracks.insert(JSON::Value(H.GetVar("track")).asInt());
-    }
     parseData = true;
     wantRequest = false;
   }
-
 }
+