diff --git a/src/main/java/io/innerloop/neo4j/ogm/impl/metadata/ClassMetadata.java b/src/main/java/io/innerloop/neo4j/ogm/impl/metadata/ClassMetadata.java
index <HASH>..<HASH> 100644
--- a/src/main/java/io/innerloop/neo4j/ogm/impl/metadata/ClassMetadata.java
+++ b/src/main/java/io/innerloop/neo4j/ogm/impl/metadata/ClassMetadata.java
@@ -154,7 +154,10 @@ public class ClassMetadata<T>
             for (Map.Entry<String, Object> entry : properties.entrySet())
             {
                 PropertyMetadata pm = propertyMetadata.get(entry.getKey());
-                pm.setValue(entry.getValue(), instance);
+                if (pm != null)
+                {
+                    pm.setValue(entry.getValue(), instance);
+                }
             }
 
             return instance;
Fixed NPE on a field not existing but is in the DB. It simply won't map this value.