* \brief   Canonical destructor.
  */
 gdcmBinEntry::~gdcmBinEntry(){
-
+   free (voidArea);
 }
 
 
 
 //-----------------------------------------------------------------------------
 // Private
-
+   
 //-----------------------------------------------------------------------------
 
    ///  when it's not string-translatable (e.g : a LUT table)         
    inline void *       GetVoidArea(void)  { return voidArea; };
 
-   /// Sets the value (non string) of the current Dicom Header Entry
+   /// \brief Sets the value (non string) of the current Dicom Header Entry
    inline void SetVoidArea(void * area)  { voidArea = area;  };
          
 protected:
 private:
 
 // Variables
-
    
    /// \brief unsecure memory area to hold 'non string' values 
    /// (ie : Lookup Tables, overlays, icons)   
    void *voidArea;
 
-
-
-
-
-
-
-
 };
 
 //-----------------------------------------------------------------------------
 
 //-----------------------------------------------------------------------------
 //
 #include "gdcmDocEntrySet.h"
-
-#include <iomanip> // for std::ios::left, ...
-
+#include "gdcmException.h"
 
 //-----------------------------------------------------------------------------
 // Constructor / Destructor
  * \brief   Constructor from a given gdcmDocEntrySet
  */
 gdcmDocEntrySet::gdcmDocEntrySet() {
-
 }
-
+/**
+ * \brief   Canonical destructor.
+ */
+gdcmDocEntrySet::~gdcmDocEntrySet(){
+}
 //-----------------------------------------------------------------------------
 // Print
 /*
 /**
  * \brief   Parses an EntrySet (Document header or SQ Item )
  * \       and load element values (a voir !)
- * @return  false if file is not ACR-NEMA / PAPYRUS / DICOM 
+ * @return  false anything wrong happens 
  */
-bool gdcmDocument::LoadDocEntrySet(bool exception_on_error) throw(gdcmFormatError) {
+bool gdcmDocEntrySet::LoadDocEntrySet(bool exception_on_error) 
+                   throw(gdcmFormatError) {
    (void)exception_on_error;
-   rewind(fp);
-   if (!CheckSwap())
-      return false;
 
    gdcmDocEntry  *newDocEntry = (gdcmDocEntry *)0;     
    gdcmValEntry  *newValEntry = (gdcmValEntry *)0; 
 
 // gdcmDocEntrySet.h
-
+//-----------------------------------------------------------------------------
 #ifndef GDCMDOCENTRYSET_H
 #define GDCMDOCENTRYSET_H
 
+#include "gdcmException.h"
+#include "gdcmDocEntry.h"
+
 //-----------------------------------------------------------------------------
 
-class GDCM_EXPORT gdcmDocEntrySet  {
+class GDCM_EXPORT gdcmDocEntrySet
+{
 
 public:
 
-
    gdcmDocEntrySet(void); 
    ~gdcmDocEntrySet(void);
 
-   void gdcmElementSet::FindDocEntryLength (gdcmDocEntry *Entry);
+   void FindDocEntryLength (gdcmDocEntry *Entry);
 
 protected:
 
 private:
 
-   bool gdcmDocEntrySet::LoadDocEntriesSet(bool exception_on_error = false) 
+   bool LoadDocEntrySet(bool exception_on_error = false) 
                      throw(gdcmFormatError);
 };
 
 
    if ( !OpenFile(exception_on_error))
       return;
 
+   rewind(fp); 
+   if (!CheckSwap()) 
+      return NULL; // Du menage à faire avant de sortir ?
    LoadDocEntries();   
    CloseFile();
 
 
 // gdcmSQItem.h
-
+//-----------------------------------------------------------------------------
 #ifndef GDCMSQITEM_H
 #define GDCMSQITEM_H
 
+#include <list>
+
+#include "gdcmDocEntry.h"
+#include "gdcmDocEntrySet.h"
+
 //-----------------------------------------------------------------------------
 typedef std::list<gdcmDocEntry *> ListDocEntry;
 //-----------------------------------------------------------------------------
-
-class GDCM_EXPORT gdcmSQItem : public gdcmDocEntrySet 
+class GDCM_EXPORT gdcmSQItem : public gdcmDocEntrySet
 {
 public:
    gdcmSQItem(void);
       {return docEntries;};   
    
  /// \brief   adds the passed DocEntry to the DocEntry chained List for this SQ Item.      
-   inline void AddDocEntry(DocEntry *e) 
+   inline void AddDocEntry(gdcmDocEntry *e) 
       {docEntries.push_back(e);};         
             
 protected:
 // Variables
 
 /// \brief chained list of (Elementary) Doc Entries
-   ListDocEntry docEntries;
+  ListDocEntry docEntries;
 };
 
 
 
 #ifndef GDCMSQDOCENTRY_H
 #define GDCMSQDOCENTRY_H
 
+#include <list>
+
+#include "gdcmSQItem.h"
+#include "gdcmDocEntry.h"
+
 //-----------------------------------------------------------------------------
 typedef std::list<gdcmSQItem *> ListSQItem;
 //-----------------------------------------------------------------------------
 
 
 public:
 
-
    gdcmValEntry(void); 
    ~gdcmValEntry(void);