diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0fea84a3f8f8c1f4ef11753758147c6be2457988..cde38fb0f2efd99856f677fc41e66252d1a43e23 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -26,7 +26,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 ### Removed ###
 
 ### Fixed ###
+
 - Query generation when there are only backrefs or backrefs and a name
+- Query generation when there are spaces or `'` in RecordType or Identifiable
+  names
 - usage of ID when looking for identified records
 
 ### Security ###
diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py
index 9122cc4a882b94e3a6bba27921f59bc4bbc9d9a0..245927e7313ca31a78bbe9b54dcb23ddfb837346 100644
--- a/src/caoscrawler/identifiable_adapters.py
+++ b/src/caoscrawler/identifiable_adapters.py
@@ -104,7 +104,7 @@ identifiabel, identifiable and identified record) for a Record.
 
         query_string = "FIND RECORD "
         if ident.record_type is not None:
-            query_string += ident.record_type
+            query_string += f"'{ident.record_type}'"
         for ref in ident.backrefs:
             eid = ref
             if isinstance(ref, db.Entity):
@@ -114,7 +114,7 @@ identifiabel, identifiable and identified record) for a Record.
         query_string += " WITH "
 
         if ident.name is not None:
-            query_string += "name='{}'".format(ident.name)
+            query_string += "name='{}'".format(convert_value(ident.name))
             if len(ident.properties) > 0:
                 query_string += " AND "
 
diff --git a/unittests/test_identifiable_adapters.py b/unittests/test_identifiable_adapters.py
index 57f1459de9b6cf4f3fec73b9f3c0af1ae2b87659..5c338f0e37dea0d3d502fc9931ad421b72944699 100644
--- a/unittests/test_identifiable_adapters.py
+++ b/unittests/test_identifiable_adapters.py
@@ -44,7 +44,7 @@ UNITTESTDIR = Path(__file__).parent
 def test_create_query_for_identifiable():
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(record_type="Person", properties={"first_name": "A", "last_name": "B"}))
-    assert query.lower() == "find record person with 'first_name'='a' and 'last_name'='b' "
+    assert query.lower() == "find record 'person' with 'first_name'='a' and 'last_name'='b' "
 
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(name="A", record_type="B", properties={
@@ -56,31 +56,31 @@ def test_create_query_for_identifiable():
             "h": db.Record(id=1111),
             "i": db.File(id=1112),
             "j": [2222, db.Record(id=3333)]}))
-    assert (query == "FIND RECORD B WITH name='A' AND 'c'='c' AND 'd'='5' AND 'e'='5.5'"
+    assert (query == "FIND RECORD 'B' WITH name='A' AND 'c'='c' AND 'd'='5' AND 'e'='5.5'"
             " AND 'f'='2020-10-10T00:00:00' AND 'g'='TRUE' AND 'h'='1111' AND 'i'='1112' AND "
             "'j'='2222' AND 'j'='3333' ")
 
     # The name can be the only identifiable
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(name="TestRecord", record_type="TestType"))
-    assert query.lower() == "find record testtype with name='testrecord'"
+    assert query.lower() == "find record 'testtype' with name='testrecord'"
 
     # With referencing entity (backref)
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(record_type="Person", backrefs=[14433], properties={'last_name': "B"}))
-    assert query.lower() == ("find record person which is referenced by 14433 and with "
+    assert query.lower() == ("find record 'person' which is referenced by 14433 and with "
                              "'last_name'='b' ")
 
     # With two referencing entities (backref)
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(record_type="Person", backrefs=[14433, 333], properties={'last_name': "B"}))
-    assert query.lower() == ("find record person which is referenced by 14433 and which is "
+    assert query.lower() == ("find record 'person' which is referenced by 14433 and which is "
                              "referenced by 333 and with 'last_name'='b' ")
 
     # With single quote in string
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(record_type="Person", backrefs=[], properties={'last_name': "B'Or"}))
-    assert query == ("FIND RECORD Person WITH 'last_name'='B\\'Or' ")
+    assert query == ("FIND RECORD 'Person' WITH 'last_name'='B\\'Or' ")
 
     # With only backref
     query = IdentifiableAdapter.create_query_for_identifiable(
@@ -92,6 +92,10 @@ def test_create_query_for_identifiable():
         Identifiable(backrefs=[160], name='lo', properties={}))
     assert query == ("FIND RECORD  WHICH IS REFERENCED BY 160 AND WITH name='lo'")
 
+    query = IdentifiableAdapter.create_query_for_identifiable(
+        Identifiable(record_type="record type", name="it's weird"))
+    assert query == ("FIND RECORD 'record type' WITH name='it\\'s weird'")
+
 
 def test_load_from_yaml_file():
     ident = CaosDBIdentifiableAdapter()