diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/CompilerAdaptation.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/CompilerAdaptation.java
index 971148e..841cead 100644
--- a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/CompilerAdaptation.java
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/CompilerAdaptation.java
@@ -484,7 +484,7 @@
 			if ((inheritedBits & TagBits.AnnotationNonNull) != 0) {
 				if ((currentBits & TagBits.AnnotationNullable) != 0) {
 					AbstractMethodDeclaration methodDecl = currentMethod.sourceMethod();
-					getType().problemReporter().illegalRedefinitionToNullableReturn(methodDecl, inheritedMethod, 
+					getType().problemReporter().illegalReturnRedefinition(methodDecl, inheritedMethod, 
 																		environment.getNonNullAnnotationName());
 				}
 			}
@@ -524,8 +524,6 @@
 					}
 				}
 			} else if (currentMethod.parameterNonNullness != null) {
-  // Temporary tweak:
-//			  if (!((ReferenceBinding) inheritedMethod.getDeclaringClass().erasure()).isBinaryBinding()) // WORKAROUND WHILE PLAYING WITH DEFAULTS
 				// super method has no annotations but current has
 				for (int i = 0; i < currentMethod.parameterNonNullness.length; i++) {
 					if (currentMethod.parameterNonNullness[i] == Boolean.TRUE) { // tightening from unconstrained to @NonNull
@@ -930,7 +928,7 @@
 				case IProblem.DefiniteNullFromNonNullMethod:
 				case IProblem.DefiniteNullToNonNullLocal:
 				case IProblem.DefiniteNullToNonNullParameter:
-				case IProblem.IllegalRedefinitionToNullableReturn:
+				case IProblem.IllegalReturnNullityRedefinition:
 				case IProblem.IllegalRedefinitionToNonNullParameter:
 				case IProblem.IllegalDefinitionToNonNullParameter:
 					return CompilerOptions.NullContractViolation;
@@ -1025,8 +1023,8 @@
 					argument.type.sourceEnd);
 			}
 		}
-		public void illegalRedefinitionToNullableReturn(org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration abstractMethodDecl,
-														MethodBinding inheritedMethod, char[][] nonNullAnnotationName) 
+		public void illegalReturnRedefinition(org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration abstractMethodDecl,
+											  MethodBinding inheritedMethod, char[][] nonNullAnnotationName) 
 		{
 			MethodDeclaration methodDecl = (MethodDeclaration) abstractMethodDecl;
 			StringBuffer methodSignature = new StringBuffer();
@@ -1050,7 +1048,7 @@
 				}
 			}
 			this.handle(
-				IProblem.IllegalRedefinitionToNullableReturn, 
+				IProblem.IllegalReturnNullityRedefinition, 
 				new String[] { methodSignature.toString(), CharOperation.toString(nonNullAnnotationName)},
 				new String[] { shortSignature.toString(), new String(nonNullAnnotationName[nonNullAnnotationName.length-1])},
 				sourceStart, 
diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/Constants.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/Constants.java
index 85b15cc..4ebdbf2 100644
--- a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/Constants.java
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/Constants.java
@@ -61,7 +61,7 @@
 		/** @since 3.7 */
 		int MissingNullAnnotationType = ImportRelated + 889;
 		/** @since 3.7 */
-		int IllegalRedefinitionToNullableReturn = MethodRelated + 890;
+		int IllegalReturnNullityRedefinition = MethodRelated + 890;
 		/** @since 3.7 */
 		int IllegalRedefinitionToNonNullParameter = MethodRelated + 891;
 		/** @since 3.7 */
diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/NullCompilerOptions.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/NullCompilerOptions.java
index 6defd20..ee0a865 100644
--- a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/NullCompilerOptions.java
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/NullCompilerOptions.java
@@ -40,9 +40,9 @@
 	public static final String OPTION_NullnessDefault = "org.eclipse.jdt.core.compiler.annotation.nulldefault";  //$NON-NLS-1$
 	
 
-	public static final int NullContractViolation = IrritantSet.GROUP2 | ASTNode.Bit7;
-	public static final int PotentialNullContractViolation = IrritantSet.GROUP2 | ASTNode.Bit8;
-	public static final int NullContractInsufficientInfo = IrritantSet.GROUP2 | ASTNode.Bit9;
+	public static final int NullContractViolation = IrritantSet.GROUP2 | ASTNode.Bit8;
+	public static final int PotentialNullContractViolation = IrritantSet.GROUP2 | ASTNode.Bit9;
+	public static final int NullContractInsufficientInfo = IrritantSet.GROUP2 | ASTNode.Bit10;
 
 	static final char[][] DEFAULT_NONNULL_ANNOTATION_NAME = CharOperation.splitOn('.', "org.eclipse.jdt.annotation.NonNull".toCharArray()); //$NON-NLS-1$
 	static final char[][] DEFAULT_NULLABLE_ANNOTATION_NAME = CharOperation.splitOn('.', "org.eclipse.jdt.annotation.Nullable".toCharArray()); //$NON-NLS-1$
diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/QuickFixes.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/QuickFixes.java
index adb7a1e..8035891 100644
--- a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/QuickFixes.java
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/QuickFixes.java
@@ -14,7 +14,7 @@
 import static org.eclipse.objectteams.internal.jdt.nullity.Constants.IProblem.DefiniteNullToNonNullParameter;
 import static org.eclipse.objectteams.internal.jdt.nullity.Constants.IProblem.IllegalDefinitionToNonNullParameter;
 import static org.eclipse.objectteams.internal.jdt.nullity.Constants.IProblem.IllegalRedefinitionToNonNullParameter;
-import static org.eclipse.objectteams.internal.jdt.nullity.Constants.IProblem.IllegalRedefinitionToNullableReturn;
+import static org.eclipse.objectteams.internal.jdt.nullity.Constants.IProblem.IllegalReturnNullityRedefinition;
 import static org.eclipse.objectteams.internal.jdt.nullity.Constants.IProblem.PotentialNullFromNonNullMethod;
 import static org.eclipse.objectteams.internal.jdt.nullity.Constants.IProblem.PotentialNullToNonNullParameter;
 
@@ -72,7 +72,7 @@
 		case PotentialNullFromNonNullMethod:
 		case DefiniteNullToNonNullParameter:
 		case PotentialNullToNonNullParameter:
-		case IllegalRedefinitionToNullableReturn:
+		case IllegalReturnNullityRedefinition:
 		case IProblem.NonNullLocalVariableComparisonYieldsFalse:
 		case IProblem.RedundantNullCheckOnNonNullLocalVariable:
 				return true;
@@ -111,7 +111,7 @@
 		case PotentialNullFromNonNullMethod:
 		case DefiniteNullToNonNullParameter:
 		case PotentialNullToNonNullParameter:
-		case IllegalRedefinitionToNullableReturn:
+		case IllegalReturnNullityRedefinition:
 		case IllegalDefinitionToNonNullParameter:
 		case IllegalRedefinitionToNonNullParameter:
 			addNullAnnotationInSignatureProposal(context, problem, proposals);
@@ -261,7 +261,7 @@
 	public static boolean isMissingNullAnnotationProblem(int id) {
 		return id == DefiniteNullFromNonNullMethod || id == PotentialNullFromNonNullMethod 
 				|| id == DefiniteNullToNonNullParameter || id == PotentialNullToNonNullParameter
-				|| id == IllegalRedefinitionToNullableReturn
+				|| id == IllegalReturnNullityRedefinition
 				|| mayIndicateParameterNullcheck(id);
 	}
 	
diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/RewriteOperations.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/RewriteOperations.java
index bcd756b..4dd2d3d 100644
--- a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/RewriteOperations.java
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/RewriteOperations.java
@@ -219,7 +219,7 @@
 		switch (problem.getProblemId()) {
 		case DefiniteNullToNonNullParameter:
 		case PotentialNullToNonNullParameter:
-		case IllegalRedefinitionToNullableReturn:
+		case IllegalReturnNullityRedefinition:
 		case IllegalDefinitionToNonNullParameter:
 		case IllegalRedefinitionToNonNullParameter:
 			// these affect another method
@@ -293,7 +293,7 @@
 					result = createChangeOverriddenParameterOperation(compilationUnit, cu, declaration, selectedNode, allowRemove,
 																	  annotationToAdd, annotationToRemove, annotationNameLabel);
 					break;
-				case IllegalRedefinitionToNullableReturn:
+				case IllegalReturnNullityRedefinition:
 					result = createChangeOverriddenReturnOperation(compilationUnit, cu, declaration, allowRemove,
 																   annotationToAdd, annotationToRemove, annotationNameLabel);
 					break;
