diff --git a/engines/sci/engine/script.cpp b/engines/sci/engine/script.cpp
index 26a7ff5..e653333 100644
--- a/engines/sci/engine/script.cpp
+++ b/engines/sci/engine/script.cpp
@@ -1066,6 +1066,16 @@ void Script::initializeObjectsSci11(SegManager *segMan, SegmentId segmentId) {
 			reg_t classObject = obj->getSuperClassSelector();
 			const Object *classObj = segMan->getObject(classObject);
 			obj->setPropDictSelector(classObj->getPropDictSelector());
+		} else {
+			// HACK: This is likely _NOT_ the right place to do this,
+			// but -propDict- is used by Obj::isMemberOf to determine
+			// if an object is an instance of a class. In SQ6, -propDict-
+			// is the offset in the script resource of the propdict, which
+			// is nowhere near unique. We relocate this to a pointer into
+			// the script's segment.
+			reg_t propdict = obj->getPropDictSelector();
+			propdict._segment = reg._segment;
+			obj->setPropDictSelector(propdict);
 		}
 
 		// Set the -classScript- selector to the script number.
