diff --git a/gas/ChangeLog b/gas/ChangeLog
index 6563dff0dd3..a4e07d33a79 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2003-10-05  Nick Clifton  <nickc@redhat.com>
+
+	* as.c (parse_args): Revert patch to change handling of -f
+	option.  Its behaviour is mandated by the POSIX 2 spec.
+
 2003-10-04  Christian Groessler  <chris@groessler.org>
 
 	* tc-z8k.c (newfix): Tell fix_new_exp about pc relativeness.
diff --git a/gas/as.c b/gas/as.c
index 5a5f823c7ae..8b27316d8bd 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -371,7 +371,7 @@ parse_args (int * pargc, char *** pargv)
     /* -K is not meaningful if .word is not being hacked.  */
     'K',
 #endif
-    'L', 'M', 'R', 'W', 'Z', 'a', ':', ':', 'D', 'I', ':', 'o', ':',
+    'L', 'M', 'R', 'W', 'Z', 'a', ':', ':', 'D', 'f', 'I', ':', 'o', ':',
 #ifndef VMS
     /* -v takes an argument on VMS, so we don't make it a generic
        option.  */
@@ -452,13 +452,6 @@ parse_args (int * pargc, char *** pargv)
     {"execstack", no_argument, NULL, OPTION_EXECSTACK},
     {"noexecstack", no_argument, NULL, OPTION_NOEXECSTACK},
 #endif
-    /* Treat '-f' as a long switch so that getopt will not accept
-       -f<some-text> as a synonym for -f.  This can cause confusion
-       when -f switches are passed through from the compiler.
-       FIXME - should we handle other single character switches in the
-       same way ?  */
-    {"f", no_argument, NULL, 'f'},
-    {"fatal-warnings", no_argument, NULL, OPTION_WARN_FATAL},
     {"fatal-warnings", no_argument, NULL, OPTION_WARN_FATAL}
     /* When you add options here, check that they do not collide with
        OPTION_MD_BASE.  See as.h.  */