Index: src/test/java/org/quartz/CronExpressionTest.java
===================================================================
--- src/test/java/org/quartz/CronExpressionTest.java	(revision 763)
+++ src/test/java/org/quartz/CronExpressionTest.java	(working copy)
@@ -121,4 +121,28 @@
         }
     }
 
+    public void testQuartz621() {
+        try {
+            CronExpression cronExpression = new CronExpression("0 0 * * * *");
+            fail("Expected ParseException did not fire for wildcard day-of-month and day-of-week");
+        } catch(ParseException pe) {
+            assertTrue("Incorrect ParseException thrown", 
+                pe.getMessage().startsWith("Support for specifying both a day-of-week AND a day-of-month parameter is not implemented."));
+        }
+        try {
+            CronExpression cronExpression = new CronExpression("0 0 * 4 * *");
+            fail("Expected ParseException did not fire for specified day-of-month and wildcard day-of-week");
+        } catch(ParseException pe) {
+            assertTrue("Incorrect ParseException thrown", 
+                pe.getMessage().startsWith("Support for specifying both a day-of-week AND a day-of-month parameter is not implemented."));
+        }
+        try {
+            CronExpression cronExpression = new CronExpression("0 0 * * * 4");
+            fail("Expected ParseException did not fire for wildcard day-of-month and specified day-of-week");
+        } catch(ParseException pe) {
+            assertTrue("Incorrect ParseException thrown", 
+                pe.getMessage().startsWith("Support for specifying both a day-of-week AND a day-of-month parameter is not implemented."));
+        }
+    }
+
 }
Index: src/java/org/quartz/CronExpression.java
===================================================================
--- src/java/org/quartz/CronExpression.java	(revision 763)
+++ src/java/org/quartz/CronExpression.java	(working copy)
@@ -86,7 +86,7 @@
  * <P>
  * The '?' character is allowed for the day-of-month and day-of-week fields. It
  * is used to specify 'no specific value'. This is useful when you need to
- * specify something in one of the two fileds, but not the other.
+ * specify something in one of the two fields, but not the other.
  * <P>
  * The '-' character is used to specify ranges For example &quot;10-12&quot; in
  * the hour field means &quot;the hours 10, 11 and 12&quot;.
@@ -159,7 +159,7 @@
  * <b>NOTES:</b>
  * <ul>
  * <li>Support for specifying both a day-of-week and a day-of-month value is
- * not complete (you'll need to use the '?' character in on of these fields).
+ * not complete (you'll need to use the '?' character in one of these fields).
  * </li>
  * </ul>
  * </p>
@@ -423,6 +423,21 @@
                 storeExpressionVals(0, "*", YEAR);
             }
 
+            TreeSet dow = getSet(DAY_OF_WEEK);
+            TreeSet dom = getSet(DAY_OF_MONTH);
+
+            // Copying the logic from the UnsupportedOperationException below
+            boolean dayOfMSpec = !dom.contains(NO_SPEC);
+            boolean dayOfWSpec = !dow.contains(NO_SPEC);
+
+            if (dayOfMSpec && !dayOfWSpec) { 
+                // skip
+            } else if (dayOfWSpec && !dayOfMSpec) { 
+                // skip
+            } else {
+                throw new ParseException(
+                        "Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.", 0);
+            }
         } catch (ParseException pe) {
             throw pe;
         } catch (Exception e) {
