             }
             
             // get host name from referrer
-            var ref:URL = new URL( _referrer );
-            var hostname:String = ref.hostName;
+            var ref:uri = new uri( _referrer );
+            var hostname:String = ref.host;
             var content:String  = ref.path;
+            
+            if( content == "" ) { content = "/"; } //fix empty path
             
             if( hostname.indexOf( "www." ) == 0 )
             {

                return camp;
            }
            
            var ref:URL = new URL( _referrer );
            var name:String = "";
            
            if( ref.hostName != "" )
            {
                if( ref.hostName.indexOf( "." ) > -1 )
                {
                    var tmp:Array = ref.hostName.split( "." );
                    
                    switch( tmp.length)
                    {
                        case 2:
                        // case: http://domain.com
                        name = tmp[0];
                        break;
                        
                        case 3:
                        //case: http://www.domain.com
                        name = tmp[1];
                        break;
                    }
                }
            }
            

                var currentOrganicSource:OrganicReferrer = _config.organic.getReferrerByName( name );
                
                // extract keyword value from query string
                var keyword:String = _config.organic.getKeywordValue( currentOrganicSource, ref.query );
                
                camp = new CampaignTracker();
                camp.source = currentOrganicSource.engine;
