diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index ac12c1e..0b5127f 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -1255,7 +1255,7 @@
 	      double max_value = master->axis[i].maximum / (double) (1 << 16);
 	      const char *elt = NULL;
 
-	      if (min_value > def_value || def_value > max_value || min_value == max_value)
+	      if (min_value > def_value || def_value > max_value)
 		  continue;
 
 	      switch (master->axis[i].tag)
@@ -1264,33 +1264,42 @@
 		  elt = FC_WEIGHT;
 		  min_value = FcWeightFromOpenType (min_value);
 		  max_value = FcWeightFromOpenType (max_value);
-		  variable = variable_weight = FcTrue;
+		  variable_weight = FcTrue;
 		  weight = 0; /* To stop looking for weight. */
 		  break;
 
 		case FT_MAKE_TAG ('w','d','t','h'):
 		  elt = FC_WIDTH;
 		  /* Values in 'wdth' match Fontconfig FC_WIDTH_* scheme directly. */
-		  variable = variable_width = FcTrue;
+		  variable_width = FcTrue;
 		  width = 0; /* To stop looking for width. */
 		  break;
 
 		case FT_MAKE_TAG ('o','p','s','z'):
 		  elt = FC_SIZE;
 		  /* Values in 'opsz' match Fontconfig FC_SIZE, both are in points. */
-		  variable = variable_size = FcTrue;
+		  variable_size = FcTrue;
 		  break;
 	      }
 
 	      if (elt)
 	      {
-		  FcRange *r = FcRangeCreateDouble (min_value, max_value);
-		  if (!FcPatternAddRange (pat, elt, r))
+		  if (min_value == max_value)
 		  {
-		      FcRangeDestroy (r);
-		      goto bail1;
+		      if (!FcPatternAddDouble (pat, elt, min_value))
+			  goto bail1;
 		  }
-		  FcRangeDestroy (r);
+		  else
+		  {
+		      FcRange *r = FcRangeCreateDouble (min_value, max_value);
+		      if (!FcPatternAddRange (pat, elt, r))
+		      {
+			  FcRangeDestroy (r);
+			  goto bail1;
+		      }
+		      FcRangeDestroy (r);
+		      variable = FcTrue;
+		  }
 	      }
 	  }
 
