diff --git a/app/lib/dal/sqliteDAL/index/CIndexDAL.js b/app/lib/dal/sqliteDAL/index/CIndexDAL.js
index 6f54b4edcefbfc03b5e262a14742fb88aa025611..cd4e99a3737b5dde1afe442ed6b02daceb645270 100644
--- a/app/lib/dal/sqliteDAL/index/CIndexDAL.js
+++ b/app/lib/dal/sqliteDAL/index/CIndexDAL.js
@@ -89,6 +89,7 @@ function CIndexDAL(driver) {
 
   this.getValidLinksTo = (receiver) => that.query('SELECT * FROM ' + that.table + ' c1 ' +
     'WHERE c1.receiver = ? ' +
+    'AND c1.expired_on = 0 ' +
     'AND NOT EXISTS (' +
     ' SELECT * FROM c_index c2' +
     ' WHERE c1.issuer = c2.issuer' +
@@ -99,6 +100,7 @@ function CIndexDAL(driver) {
 
   this.getValidLinksFrom = (issuer) => that.query('SELECT * FROM ' + that.table + ' c1 ' +
     'WHERE c1.issuer = ? ' +
+    'AND c1.expired_on = 0 ' +
     'AND NOT EXISTS (' +
     ' SELECT * FROM c_index c2' +
     ' WHERE c1.issuer = c2.issuer' +
diff --git a/app/lib/dup/indexer.js b/app/lib/dup/indexer.js
index 37b5b429e4da2835a9f21ebe8fd5ca5eb9976a09..d5719d4f1eeccce4bebef85696e1e66550900ab2 100644
--- a/app/lib/dup/indexer.js
+++ b/app/lib/dup/indexer.js
@@ -651,7 +651,7 @@ const indexer = module.exports = {
 
     // BR_G39
     yield cindex.map((ENTRY) => co(function*() {
-      ENTRY.stock = count(yield dal.cindexDAL.sqlFind({ issuer: ENTRY.issuer, expired_on: 0 }));
+      ENTRY.stock = count(yield dal.cindexDAL.getValidLinksFrom(ENTRY.issuer));
     }));
 
     // BR_G40
diff --git a/doc/Protocol.md b/doc/Protocol.md
index c4feaf30f0394d88adbb05e3dff376a683168058..eb3153f1ee8c28a86d8126ce82198bb5ae604b46 100644
--- a/doc/Protocol.md
+++ b/doc/Protocol.md
@@ -1972,7 +1972,7 @@ If `HEAD.number > 0`:
     
 ####### BR_G39 - ENTRY.stock
 
-    ENTRY.stock = COUNT(GLOBAL_CINDEX[issuer=ENTRY.issuer, expired_on=0]))
+    ENTRY.stock = COUNT(REDUCE_BY(GLOBAL_CINDEX[issuer=ENTRY.issuer], 'receiver', 'created_on')[expired_on=0])
     
 ####### BR_G40 - ENTRY.fromMember