diff --git a/src-test/org/openbravo/test/dal/IssuesTest.java b/src-test/org/openbravo/test/dal/IssuesTest.java
--- a/src-test/org/openbravo/test/dal/IssuesTest.java
+++ b/src-test/org/openbravo/test/dal/IssuesTest.java
@@ -28,6 +28,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.log4j.Logger;
 import org.dom4j.Document;
@@ -47,6 +48,7 @@
 import org.openbravo.dal.core.DalThreadHandler;
 import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.core.OBInterceptor;
+import org.openbravo.dal.security.OrganizationStructureProvider;
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.dal.service.OBQuery;
@@ -642,9 +644,29 @@
     query.setString(0, "en_US");
     query.setString(1, "800025");
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "unused" })
     java.util.List<Object[]> l = query.list();
 
   }
 
+  /**
+   * Testing issue 0020129.OBContext class getters returning a reference to the class instance
+   * attributes (not a new instance of the attribute)
+   */
+  public void test20129() {
+    setTestAdminContext();
+
+    final String clientId = OBContext.getOBContext().getCurrentClient().getId();
+    final OrganizationStructureProvider osp = OBContext.getOBContext()
+        .getOrganizationStructureProvider(clientId);
+    final Set<String> childOrg = osp.getChildOrg(OBContext.getOBContext().getCurrentOrganization()
+        .getId());
+
+    childOrg.removeAll(childOrg);
+
+    final Set<String> childOrg2 = osp.getChildOrg(OBContext.getOBContext().getCurrentOrganization()
+        .getId());
+
+    assertFalse(childOrg2.isEmpty());
+  }
 }
\ No newline at end of file
