Index: src/test/java/org/quartz/SimpleTriggerTest.java
===================================================================
--- src/test/java/org/quartz/SimpleTriggerTest.java	(revision 809)
+++ src/test/java/org/quartz/SimpleTriggerTest.java	(working copy)
@@ -192,4 +192,9 @@
         assertEquals("V1", simpleTrigger.getJobDataMap().get("K1"));
         assertEquals("V2", simpleTrigger.getJobDataMap().get("K2"));
     }
+
+    // NPE in equals()
+    public void testQuartz665() {
+        new SimpleTrigger().equals(new SimpleTrigger());
+    }
 }
Index: src/java/org/quartz/Trigger.java
===================================================================
--- src/java/org/quartz/Trigger.java	(revision 809)
+++ src/java/org/quartz/Trigger.java	(working copy)
@@ -1016,13 +1016,20 @@
 
         Trigger other = (Trigger) obj;
 
-        if (!other.getName().equals(getName())) {
+        if (other.getName() == null && getName() != null) {
             return false;
         }
-        if (!other.getGroup().equals(getGroup())) {
+        if (other.getName() != null && !other.getName().equals(getName())) {
             return false;
         }
 
+        if (other.getGroup() == null && getGroup() != null) {
+            return false;
+        }
+        if (other.getGroup() != null && !other.getGroup().equals(getGroup())) {
+            return false;
+        }
+
         return true;
     }
 
