diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 445ed4b77021f2fda96e357ca0d8f691ecb4402a..be4f8b4b86582ee7155512eae3a2d32e152553e6 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,9 +1,18 @@
+2006-11-10  Brooks Moses  <brooks.moses@codesourcery.com>
+
+	* lang.opt (-fmodule-private): Remove option.
+	* gfortran.h (gfc_option_t): Remove module_access_private flag.
+	* options.c (gfc_init_options): Remove initialization for it.
+	(gfc_process_option): Remove handling for -fmodule-private.
+	* module.c (gfc_check_access): Add comments, remove check for
+	gfc_option.flag_module_access_private.
+
 2006-11-10 Paul Thomas <pault@gcc.gnu.org>
 
-   PR fortran/29758
-   * check.c (gfc_check_reshape): Check that there are enough
-   elements in the source array as to be able to fill an array
-   defined by shape, when pad is absent.
+	PR fortran/29758
+	* check.c (gfc_check_reshape): Check that there are enough
+	elements in the source array as to be able to fill an array
+	defined by shape, when pad is absent.
 
 2006-11-10 Paul Thomas <pault@gcc.gnu.org>
 
diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
index 05292375c2e4b551e29e8e46e8336665daab6075..f78f923d681af19202c0ad782eba0adbe0845301 100644
--- a/gcc/fortran/gfortran.h
+++ b/gcc/fortran/gfortran.h
@@ -1640,7 +1640,6 @@ typedef struct
   int flag_second_underscore;
   int flag_implicit_none;
   int flag_max_stack_var_size;
-  int flag_module_access_private;
   int flag_no_backend;
   int flag_range_check;
   int flag_pack_derived;
diff --git a/gcc/fortran/lang.opt b/gcc/fortran/lang.opt
index c055f14a4b37871d900369f44da31fdb253de50a..3409841c9073860cca6962f721b97582fae7303d 100644
--- a/gcc/fortran/lang.opt
+++ b/gcc/fortran/lang.opt
@@ -181,10 +181,6 @@ fmax-stack-var-size=
 Fortran RejectNegative Joined UInteger
 -fmax-stack-var-size=<n>	Size in bytes of the largest array that will be put on the stack
 
-fmodule-private
-Fortran
-Set default accessibility of module entities to PRIVATE
-
 fno-backend
 Fortran RejectNegative
 Don't generate code, just do syntax and semantics checking
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 77ac0e90d81c86dabaf17dd48dbac0974076567b..92517d85d05e8b0269e5c5242e9ca7bf1f972b3e 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -3413,7 +3413,10 @@ read_module (void)
 
 
 /* Given an access type that is specific to an entity and the default
-   access, return nonzero if the entity is publicly accessible.  */
+   access, return nonzero if the entity is publicly accessible.  If the
+   element is declared as PUBLIC, then it is public; if declared 
+   PRIVATE, then private, and otherwise it is public unless the default
+   access in this context has been declared PRIVATE.  */
 
 bool
 gfc_check_access (gfc_access specific_access, gfc_access default_access)
@@ -3424,12 +3427,7 @@ gfc_check_access (gfc_access specific_access, gfc_access default_access)
   if (specific_access == ACCESS_PRIVATE)
     return FALSE;
 
-  if (gfc_option.flag_module_access_private)
-    return default_access == ACCESS_PUBLIC;
-  else
-    return default_access != ACCESS_PRIVATE;
-
-  return FALSE;
+  return default_access != ACCESS_PRIVATE;
 }
 
 
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c
index ef44ae5132449ef5c86c99b2a9cc70c5b294c19a..5d708e23d5129b14a5a85ae883b037278a5b3365 100644
--- a/gcc/fortran/options.c
+++ b/gcc/fortran/options.c
@@ -73,7 +73,6 @@ gfc_init_options (unsigned int argc ATTRIBUTE_UNUSED,
   gfc_option.flag_second_underscore = -1;
   gfc_option.flag_implicit_none = 0;
   gfc_option.flag_max_stack_var_size = 32768;
-  gfc_option.flag_module_access_private = 0;
   gfc_option.flag_no_backend = 0;
   gfc_option.flag_range_check = 1;
   gfc_option.flag_pack_derived = 0;
@@ -521,10 +520,6 @@ gfc_handle_option (size_t scode, const char *arg, int value)
       gfc_option.flag_max_stack_var_size = value;
       break;
 
-    case OPT_fmodule_private:
-      gfc_option.flag_module_access_private = value;
-      break;
-
     case OPT_fno_backend:
       gfc_option.flag_no_backend = value;
       break;