diff --git a/ghc/utils/mkdependHS/mkdependHS.prl b/ghc/utils/mkdependHS/mkdependHS.prl
index 91a7714d06c24cb285df89ebf76d3bbf22d9adee..c665c948335ac453dc9f3fdf19b6a8eef28ccf9d 100644
--- a/ghc/utils/mkdependHS/mkdependHS.prl
+++ b/ghc/utils/mkdependHS/mkdependHS.prl
@@ -27,6 +27,7 @@ Options recognised wherever they occur (mkdependHS or GHC):
     -package <blah> This program uses this GHC system library; take
 		appropriate action (e.g., recognise when they are
 		"import"ing a module from that library).
+    -osuf <osuf> Use <osuf> as the "object file" suffix ( default: o)
 
 mkdependHS-specific options (not between --'s):
 
@@ -36,7 +37,6 @@ mkdependHS-specific options (not between --'s):
     -f blah	Use "blah" as the makefile, rather than "makefile"
 		or "Makefile".
     -cpp	Wash the input files through cpp(1).
-    -o <osuf>	Use <osuf> as the "object file" suffix ( default: o)
     -s <suf>	Make extra dependencies for files with
 		suffix <suf><osuf>; thus, "-o hc -s _a" will
 		make dependencies both for .hc files and for .a_hc
@@ -240,6 +240,13 @@ sub mangle_command_line_args {
 	    push(@Syslibs, 'concurrent');
 	} elsif (/^-#include(.*)/) {
 	    &grab_arg_arg(*Args,'-#include',$1);
+	} elsif ( /^-osuf(.*)/ ) {
+	    local($suff)	= &grab_arg_arg(*Args,'-osuf',$1);
+	    # Weed out existing entry .. there must be a better way of doing this
+	    # with arrays (non-assoc) ! -- sof
+	    @Obj_suffix	= grep(!/$suff/,@Obj_suffix);
+	    push(@Obj_suffix, $suff);
+
 	} elsif ($Dashdashes_seen != 1) { # not between -- ... --
 	    if ( /^-v$/ ) {
 		$Verbose++;
@@ -247,15 +254,8 @@ sub mangle_command_line_args {
 		$Warnings     = 0;
 	    } elsif ( /^-f(.*)/ && !$ProcessingOptions ) {
 		$Makefile	= &grab_arg_arg(*Args,'-f',$1);
-	    } elsif ( /^-o(.*)/ ) {
-		local($suff)	= &grab_arg_arg(*Args,'-o',$1);
-		# Weed out existing entry .. there must be a better way of doing this
-		# with arrays (non-assoc) ! -- sof
-		@Obj_suffix	= grep(!/$suff/,@Obj_suffix);
-		push(@Obj_suffix, $suff);
             #
 	    # --exclude-module=mod => it's stable, trust me!
-            
 	    } elsif ( /^-(x|-exclude-module=)(.*)/ ) { 
 		local($thing) = &grab_arg_arg(*Args,$1,$2);
 		$IgnoreMe{$thing} = 'Y';
diff --git a/mk/target.mk b/mk/target.mk
index 2158db340c5ec7c0164cf60ad6edb88be071a2a8..0f98fe0ac35e40e282d5e1f462db2f06198ad95e 100644
--- a/mk/target.mk
+++ b/mk/target.mk
@@ -181,7 +181,7 @@ ifneq "$(MKDEPENDC_SRCS)" ""
 	$(MKDEPENDC) -f .depend $(MKDEPENDC_OPTS) $(foreach way,$(WAYS),-s $(way)) -- $(CC_OPTS) -- $(MKDEPENDC_SRCS) 
 endif
 ifneq "$(MKDEPENDHS_SRCS)" ""
-	$(MKDEPENDHS) -M -optdep-f -optdep.depend $(foreach way,$(WAYS),-optdep-s -optdep$(way)) $(foreach obj,$(MKDEPENDHS_OBJ_SUFFICES),-optdep-o -optdep$(obj)) $(MKDEPENDHS_OPTS) $(HC_OPTS) $(MKDEPENDHS_SRCS)
+	$(MKDEPENDHS) -M -optdep-f -optdep.depend $(foreach way,$(WAYS),-optdep-s -optdep$(way)) $(foreach obj,$(MKDEPENDHS_OBJ_SUFFICES),-osuf $(obj)) $(MKDEPENDHS_OPTS) $(HC_OPTS) $(MKDEPENDHS_SRCS)
 endif