Index: src/orca/settings.py
===================================================================
--- src/orca/settings.py	(revision 4022)
+++ src/orca/settings.py	(working copy)
@@ -155,6 +155,7 @@
     "showMainWindow",
     "quitOrcaNoConfirmation",
     "presentToolTips",
+    "wrappedStructuralNavigation",
     "sayAllStyle",
     "keyboardLayout",
     "speakBlankLines",
@@ -218,6 +219,9 @@
 #
 MODIFIER_ORCA = 8
 
+# weather to wrap around the document when structural navigation is used
+wrappedStructuralNavigation = True
+
 # Verbosity levels (see setBrailleVerbosityLevel and
 # setSpeechVerbosityLevel).  These will have an impact on the various
 # individual verbosity levels for rolenames, accelerators, etc.
Index: src/orca/structural_navigation.py
===================================================================
--- src/orca/structural_navigation.py	(revision 4022)
+++ src/orca/structural_navigation.py	(working copy)
@@ -784,7 +784,7 @@
 
         obj = obj or self.getCurrentObject()
         success = False
-
+        wrap = settings.wrappedStructuralNavigation
         # Try to find it using Collection first.  But don't do this with form
         # fields for now.  It's a bit faster moving to the next form field,
         # but not on pages with huge forms (e.g. bugzilla's advanced search
@@ -827,13 +827,13 @@
                 if not next:
                     [obj, wrapped] = self._findPrevByMatchRule(collection,
                                                                rule,
-                                                               True,
+                                                               wrap,
                                                                obj,
                                                                predicate)
                 else:
                     [obj, wrapped] = self._findNextByMatchRule(collection,
                                                                rule,
-                                                               True,
+                                                               wrap,
                                                                obj,
                                                                predicate)
                 success = True
@@ -850,10 +850,10 @@
         if not success:
             pred = structuralNavigationObject.predicate
             if not next:
-                [obj, wrapped] = self._findPrevByPredicate(pred, True,
+                [obj, wrapped] = self._findPrevByPredicate(pred, wrap,
                                                            obj, arg)
             else:
-                [obj, wrapped] = self._findNextByPredicate(pred, True,
+                [obj, wrapped] = self._findNextByPredicate(pred, wrap,
                                                            obj, arg)
             # print "predicate", structuralNavigationObject.objType
         if wrapped:
