diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dbe3c5b8d46da04ba4d2a5102fd6ed37d7173967..c874fd6da303a38aa655b04378e193957a980970 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-07-07  Neil Booth  <neil@daikokuya.co.uk>
+
+	* opts.c (common_handle_option): Correct handling of the
+	-falign- switches that do and don't take an argument.
+
 2003-07-07  Kazu Hirata  <kazu@cs.umass.edu>
 
 	* config/h8300/h8300.md (pushqi1_h8300hs): Revert my patch
diff --git a/gcc/opts.c b/gcc/opts.c
index f3889c77a1ac7d4d2a286f319abe7a1d163ea0fd..85c759dbdaba43450206fe36dc0b37d6abc87f97 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -782,25 +782,37 @@ common_handle_option (size_t scode, const char *arg,
       break;
 
     case OPT_falign_functions:
-    case OPT_falign_functions_:
       align_functions = !value;
       break;
 
+    case OPT_falign_functions_:
+      align_functions = value;
+      break;
+
     case OPT_falign_jumps:
-    case OPT_falign_jumps_:
       align_jumps = !value;
       break;
 
+    case OPT_falign_jumps_:
+      align_jumps = value;
+      break;
+
     case OPT_falign_labels:
-    case OPT_falign_labels_:
       align_labels = !value;
       break;
 
+    case OPT_falign_labels_:
+      align_labels = value;
+      break;
+
     case OPT_falign_loops:
-    case OPT_falign_loops_:
       align_loops = !value;
       break;
 
+    case OPT_falign_loops_:
+      align_loops = value;
+      break;
+
     case OPT_fargument_alias:
       flag_argument_noalias = !value;
       break;