diff --git a/latex.el b/latex.el
index 98d15a0..95b6ab6 100644
--- a/latex.el
+++ b/latex.el
@@ -5017,6 +5017,25 @@ commands are defined:
 			(repeat :tag "Math Macros" (string))))
   :group 'TeX-fold)
 
+;;; Narrowing
+
+(defun LaTeX-narrow-to-environment (&optional count)
+  "Make text outside current environment invisible.
+With optional COUNT keep visible that number of enclosing
+environmens."
+  (interactive "p")
+  (setq count (if count (abs count) 1))
+  (save-excursion
+    (widen)
+    (let ((opoint (point))
+	  beg end)
+      (dotimes (c count) (LaTeX-find-matching-end))
+      (setq end (point))
+      (goto-char opoint)
+      (dotimes (c count) (LaTeX-find-matching-begin))
+      (setq beg (point))
+      (narrow-to-region beg end))))
+(put 'LaTeX-narrow-to-environment 'disabled t)
 
 ;;; Keymap
 
@@ -5989,7 +6008,9 @@ i.e. you do _not_ have to cater for this yourself by adding \\\\' or $."
   ;; late in mode initialization to assure that all relevant variables
   ;; are properly initialized before style files try to alter them.
   (easy-menu-add LaTeX-mode-menu LaTeX-mode-map)
-  (easy-menu-add LaTeX-mode-command-menu LaTeX-mode-map))
+  (easy-menu-add LaTeX-mode-command-menu LaTeX-mode-map)
+
+  (define-key narrow-map "e" 'LaTeX-narrow-to-environment))
 
 (defun LaTeX-imenu-create-index-function ()
   "Imenu support function for LaTeX."
diff --git a/tex.el b/tex.el
index 443cf25..17c8a4f 100644
--- a/tex.el
+++ b/tex.el
@@ -3087,6 +3087,8 @@ The algorithm is as follows:
   (make-local-variable 'TeX-auto-update)
   (setq TeX-auto-update t)
 
+  (define-key narrow-map "g" 'TeX-narrow-to-group)
+
   ;; Minor modes
   (when TeX-source-correlate-mode
     (TeX-source-correlate-mode 1))
@@ -3944,6 +3946,24 @@ If optional argument STRIP is non-nil, remove file extension."
 					       dir) t)))))
 	    (append local-files (TeX-search-files dirs exts nodir strip)))))))
 
+;;; Narrowing
+
+(defun TeX-narrow-to-group ()
+  "Make text outside current group invisible."
+  (interactive)
+  (save-excursion
+    (widen)
+    (let ((opoint (point))
+	  beg end)
+      (if (null (search-backward "{" nil t))
+	  (message "Nothing to be narrowed here.")
+	(setq beg (point))
+	(forward-sexp)
+	(setq end (point))
+	(if (< end opoint)
+	    (message "Nothing to be narrowed here.")
+	  (narrow-to-region beg end))))))
+(put 'TeX-narrow-to-group 'disabled t)
 
 ;;; Utilities
 ;;
