diff --git a/include/class.orm.php b/include/class.orm.php
index a92d476682f0ed2373adffe3c18dd1f35222ef88..0cfaf64222da759eb56d156b69b1a32397c5bcdd 100644
--- a/include/class.orm.php
+++ b/include/class.orm.php
@@ -1534,9 +1534,11 @@ class ModelInstanceManager extends ResultSet {
                     $tail = array_pop($path);
                     $m = $model;
                     foreach ($path as $field) {
-                        $m = $m->get($field);
+                        if (!($m = $m->get($field)))
+                            break;
                     }
-                    $m->set($tail, $this->getOrBuild($model_class, $record));
+                    if ($m)
+                        $m->set($tail, $this->getOrBuild($model_class, $record));
                 }
                 $offset += count($fields);
             }