               } else if (event.type == Event.COMPLETE) {
                   this.soundLoading = false;
                   this.owner.resourceevent('loadratio', 1);
-                  this.updateTotalframes();
-                  
+                  this.totalframes = Math.floor(this.getTotalTime() * MP3_FPS);
+
                   // send events, including onload
                   this.sendResourceLoad();
               } else if (event.type == ProgressEvent.PROGRESS) {

          if (url == null || url == 'null') {
              return;
          }

          this.__isinternalresource = false;

          var loadurl = url;
          var proxied = this.owner.__LZcheckProxyPolicy( url );
          var proxyurl = this.owner.getProxyURL(url);

              
              if (p) this.owner.resourceevent('stop', null, true);
          } else if (this.__isinternalresource) {
              var resinfo:Object = LzResourceLibrary[this.resource];

              // Frames are one based not zero based
              var frames:Array = resinfo.frames;
              if (fn == null || fn < 1) {
                  fn = 1;
              } else if (fn > frames.length) {
                  fn = frames.length;
              }
              this.frame = fn;
              var framenumber:int = fn - 1;

              var assetclass:Class;
              // single frame resources get an entry in LzResourceLibrary which has
              // 'assetclass' pointing to the resource Class object.
              if (resinfo.assetclass is Class) {
