--- SimpleRSS-orig/Source/SimpleRSSTypes.pas	2005-09-27 19:33:16.000000000 +0200
+++ SimpleRSS/Source/SimpleRSSTypes.pas	2009-12-14 15:47:48.000000000 +0100
@@ -30,7 +30,7 @@
 interface
 
 uses
-  Classes, SysUtils, iTunesTypes;
+  Classes, SysUtils, iTunesTypes, IdGlobalProtocols;
 
 type
   ESimpleRSSException = class(Exception);
@@ -551,6 +551,7 @@
     procedure SetiTunes(const Value: TiTunesItemExtra);
   public
     constructor Create(Collection: TCollection); override;
+    destructor Destroy;override;
     function CommentsChanged: Boolean;
     function AuthorChanged: Boolean;
     function TitleChanged: Boolean;
@@ -1211,6 +1212,18 @@
   Result := FDescriptionChanged;
 end;
 
+destructor TRSSItem.Destroy;
+begin
+  FCategory.Free;
+  FPubDate.Free;
+  FEnclosure.Free;
+  FGUID.Free;
+  FSource.Free;
+  FAuthor.Free;
+  FiTunes.Free;
+  inherited;
+end;
+
 function TRSSItem.LinkChanged: Boolean;
 begin
   Result := FLinkChanged;
@@ -1643,7 +1656,8 @@
   aDate: TDateTime;
 begin
   try
-    aDate := StrInternetToDateTime(S);
+    aDate := GMTToLocalDateTime(S); 
+    //aDate := StrInternetToDateTime(S);
   except
     aDate := now;
   end;
--- SimpleRSS-orig/Source/SimpleRSS.pas	2005-09-29 18:24:24.000000000 +0200
+++ SimpleRSS/Source/SimpleRSS.pas	2009-12-14 16:01:20.000000000 +0100
@@ -178,7 +178,8 @@
   if (not VarIsNull(FXMLFile.DocumentElement.Attributes[reVersion])) then
     FVersion := FXMLFile.DocumentElement.Attributes[reVersion];
 
-  case FXMLType of
+  try
+    case FXMLType of
     xtRDF: aParser:=TSimpleParserRDF.Create(Self);
     xtRSS: aParser:=TSimpleParserRSS.Create(Self);
     xtAtom: aParser:=TSimpleParserAtom.Create(Self);
@@ -196,6 +197,9 @@
     end
   else
     raise ESimpleRSSException.CreateFmt(reFormatUnkown+ ': %s', [FXMLFile.DocumentElement.NodeName]);
+  finally
+    aParser.Free;
+  end;
 end;
 
 Procedure TSimpleRSS.GenerateXML;
@@ -207,6 +211,7 @@
 Var
   aParser : TSimpleParserBase;
 begin
+  try
   Case FeedType of
     xtRSS : aParser := TSimpleParserRSS.Create(Self);
     xtRDF : aParser := TSimpleParserRDF.Create(Self);
@@ -224,6 +229,9 @@
     end
   else
     Raise ESimpleRSSException.Create(reFormatUnkown);
+  finally
+    aParser.Free;
+  end;
 end;
 
 function TSimpleRSS.GetSimpleRSSVersion: String;

