diff --git a/src/editor/components/referenceentry.tsx b/src/editor/components/referenceentry.tsx
index c0914d88bf3fac8f8e017660e5da9626520c745c..e674e83a860934b0f0953eede3325c46c2ae7b3d 100644
--- a/src/editor/components/referenceentry.tsx
+++ b/src/editor/components/referenceentry.tsx
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import { DescriptiveReference } from "../../common/graph/node";
 import "./nodetypeentry.css";
 
@@ -13,15 +13,28 @@ function ReferenceEntry({
     onReferenceDelete,
     onReferenceChange,
 }: ReferenceEntryProps) {
+    const [change, setChange] = useState(false);
+
     const onPropChange = (
         prop: keyof DescriptiveReference,
         newValue: string
     ) => {
         reference[prop] = newValue;
+        setChange(true);
+    };
+
+    const handleOnBlur = () => {
+        // Did anything change?
+        if (!change) {
+            return;
+        }
+
+        onReferenceChange(reference);
+        setChange(false);
     };
 
     return (
-        <div className="reference" onBlur={() => onReferenceChange(reference)}>
+        <div className="reference" onBlur={handleOnBlur}>
             <label htmlFor="reference-url">Url</label>
             <br />
             <input