diff --git a/ArchiveExtractor.py b/ArchiveExtractor.py
index 022b2262698fad845fb3abe54e984e0890263b87..d187930cba5cc169fda25cbeda6b5b5a658cf396 100755
--- a/ArchiveExtractor.py
+++ b/ArchiveExtractor.py
@@ -23,6 +23,7 @@ DBDFMT = "%Y-%m-%d %H:%M:%S"
 # Extractor date format for GetNearestValue
 DBDFMT2 = "%d-%m-%Y %H:%M:%S"
 
+ArrayTimeStampToDatetime = np.vectorize(datetime.datetime.fromtimestamp)
 
 ##---------------------------------------------------------------------------##
 def dateparse(datestr):
@@ -76,7 +77,7 @@ def query_ADB_BetweenDates(attr,
               extractor="archiving/TDBExtractor/4"):
     """
     Query attribute data from an archiver database, get all points between dates.
-    Use GetAttDataBetweenDates.
+    Use ExtractBetweenDates.
     Warning : if the time interval gives a huge set of data, it can stall.
 
     Parameters
@@ -152,32 +153,22 @@ def query_ADB_BetweenDates(attr,
     # For each date chunk
     for i_d in range(len(cdates)-1):
         # Make retrieval request
-        logger.debug("Perform GetAttDataBetweenDates (%s, %s, %s)"%(
+        logger.debug("Perform ExtractBetweenDates (%s, %s, %s)"%(
             attr,
             cdates[i_d].strftime(DBDFMT),
             cdates[i_d+1].strftime(DBDFMT))
             )
 
-        [N,], [name,] = ADB.GetAttDataBetweenDates([
+        _date, _value = ADB.ExtractBetweenDates([
             attr,
             cdates[i_d].strftime(DBDFMT),
             cdates[i_d+1].strftime(DBDFMT)
             ])
 
-        # Read the history
-        logger.debug("Retrieve hystory of %d values. Dynamic attribute named %s."%(N, name))
-        attrHist = ADB.attribute_history(name, N)
-
         # Transform to datetime - value arrays
-        _value = np.empty(N, dtype=float)
-        _date = np.empty(N, dtype=object)
-        for i_h in range(N):
-            _value[i_h]=attrHist[i_h].value
-            _date[i_h]=attrHist[i_h].time.todatetime()
-
-        # Remove dynamic attribute
-        logger.debug("Remove dynamic attribute %s."%name)
-        ADB.RemoveDynamicAttribute(name)
+        _value = np.asarray(_value, dtype=float)
+        if len(_date) > 0:
+            _date = ArrayTimeStampToDatetime(_date/1000.0)
 
         value.append(_value)
         date.append(_date)