diff --git a/kDB/Repository/GraphsManager.cpp b/kDB/Repository/GraphsManager.cpp
index 1878eea5d36b566d4de7f949fecf0e6db15662db..0d4d32af95bbe400bac161ef98ee62f368048e53 100644
--- a/kDB/Repository/GraphsManager.cpp
+++ b/kDB/Repository/GraphsManager.cpp
@@ -336,14 +336,13 @@ knowCore::ReturnVoid GraphsManager::reload()
     {
       tsd = d->tripleStores[name];
       Q_ASSERT(not tsd->name.isEmpty());
-      Q_ASSERT(not tsd->table.isEmpty());
     } else {
       tsd = QSharedPointer<TriplesStore::Definition>(new TriplesStore::Definition);
       tsd->name = name;
-      KNOWCORE_RETURN_VALUE_TRY_ASSIGN(tsd->table, r.value(i, 1).value<QString>());
       Q_ASSERT(not tsd->name.isEmpty());
-      Q_ASSERT(not tsd->table.isEmpty());
     }
+    KNOWCORE_RETURN_VALUE_TRY_ASSIGN(tsd->table, r.value(i, 1).value<QString>());
+    Q_ASSERT(not tsd->table.isEmpty());
     tripleStores[name] = tsd;
     QMutexLocker l(&tsd->mutex);
     TriplesStore::Options new_options(r.value<int>(i, 2).expectSuccess());
diff --git a/kDB/Repository/TriplesStore.cpp b/kDB/Repository/TriplesStore.cpp
index ab24a87cb1431a90150b389f96adb00a0ff94beb..7684cddcfdc0547e9cbe0f1d7fa53e1b891f881c 100644
--- a/kDB/Repository/TriplesStore.cpp
+++ b/kDB/Repository/TriplesStore.cpp
@@ -285,18 +285,28 @@ knowCore::ReturnVoid TriplesStore::remove(const QList<knowRDF::Triple>& _triple,
 }
 
 QList< knowRDF::Triple > TriplesStore::triples() const
+{
+  return triples2().value();
+}
+
+knowCore::ReturnValue<QList<knowRDF::Triple>> TriplesStore::triples2() const
 {
   knowDBC::Query q = D()->connection.createSQLQuery("SELECT subject, predicate, object FROM " + D()->definition->table);
   knowDBC::Result r = q.execute();
-  
-  QList< knowRDF::Triple > triples;
-    
-  for(int i = 0; i < r.tuples(); ++i)
+
+  if(r)
   {
-    triples.append(DatabaseInterface::PostgreSQL::SQLInterface::getTriple(D()->connection, r, i, 0, 1, 2, false));
+    QList< knowRDF::Triple > triples;
+      
+    for(int i = 0; i < r.tuples(); ++i)
+    {
+      triples.append(DatabaseInterface::PostgreSQL::SQLInterface::getTriple(D()->connection, r, i, 0, 1, 2, false));
+    }
+    
+    return kCrvSuccess(triples);
+  } else {
+    return kCrvError(r.error());
   }
-  
-  return triples;
 }
 
 std::size_t TriplesStore::triplesCount() const
diff --git a/kDB/Repository/TriplesStore.h b/kDB/Repository/TriplesStore.h
index 9ee3bf9f1ed4fe5e9a4a6b69d5c6fc8eae020d8b..32342533a855d267039179655ced0743768606fe 100644
--- a/kDB/Repository/TriplesStore.h
+++ b/kDB/Repository/TriplesStore.h
@@ -87,6 +87,7 @@ namespace kDB::Repository
      * @return the triples from the triple store. Equivalent to "SELECT ?x ?y ?z WHERE { ?x ?y ?z . };" query,
      */
     QList<knowRDF::Triple> triples() const;
+    knowCore::ReturnValue<QList<knowRDF::Triple>> triples2() const;
     
     /**
      * @return a random triple
diff --git a/kDB/Repository/tests/TestTripleStore.cpp b/kDB/Repository/tests/TestTripleStore.cpp
index d869daaba5bd5fdc96fc957989e1441349e0c2cd..f24430bf8112badec594ff084d5539878fa13ee8 100644
--- a/kDB/Repository/tests/TestTripleStore.cpp
+++ b/kDB/Repository/tests/TestTripleStore.cpp
@@ -328,8 +328,6 @@ void TestTripleStore::testNotifications()
 
   KNOWCORE_TEST_WAIT_FOR(notifications_count == 2);
   QCOMPARE((int)notifications_count, 2);
-  KNOWCORE_TEST_WAIT_FOR(notifications_count == 3);
-  QCOMPARE((int)notifications_count, 2);
   
   interface.listen([&notifications_count](const QByteArray&) { ++notifications_count; });
 
@@ -421,6 +419,17 @@ void TestTripleStore::testDropping()
   KNOWCORE_TEST_WAIT_FOR(not c1.graphsManager()->hasTripleStore("a"_kCu));
   QVERIFY(not c1.graphsManager()->hasTripleStore("a"_kCu));
 
+  KNOWCORE_TEST_VERIFY_SUCCESS(c1.graphsManager()->createTriplesStore("b"_kCu));
+  for(int i = 0; i < 10; ++i)
+  {
+    KNOWCORE_TEST_VERIFY_SUCCESS_VOID(c2.graphsManager()->removeTripleStore("b"_kCu));
+    Repository::TriplesStore interface2 = KNOWCORE_TEST_VERIFY_SUCCESS(c2.graphsManager()->createTriplesStore("b"_kCu));
+    interface2.insert("a"_kCu, "b"_kCu, "c"_kCu);
+    Repository::TriplesStore interface1 = KNOWCORE_TEST_VERIFY_SUCCESS(c1.graphsManager()->getTriplesStore("b"_kCu));
+    KNOWCORE_TEST_WAIT_FOR(KNOWCORE_TEST_VERIFY_SUCCESS(c1.graphsManager()->getTriplesStore("b"_kCu)).triples2().success());
+    KNOWCORE_TEST_VERIFY_SUCCESS(KNOWCORE_TEST_VERIFY_SUCCESS(c1.graphsManager()->getTriplesStore("b"_kCu)).triples2());
+
+  }
 }