diff --git a/indra/lib/python/indra/util/llmanifest.py b/indra/lib/python/indra/util/llmanifest.py
index 37f9676aa06350d4650fb24509feb7d88bd112ae..013ba4798ce668a0c65263d1ef73f66bf0e036a8 100755
--- a/indra/lib/python/indra/util/llmanifest.py
+++ b/indra/lib/python/indra/util/llmanifest.py
@@ -839,7 +839,7 @@ def path2basename(self, path, file):
         """
         return self.path(os.path.join(path, file), file)
 
-    def path(self, src, dst=None):
+    def path(self, src, dst=None, err_if_missing=True):
         sys.stdout.flush()
         if src == None:
             raise ManifestError("No source file, dst is " + dst)
@@ -875,7 +875,8 @@ def try_path(src):
         else:
             # no more prefixes left to try
             print("\nunable to find '%s'; looked in:\n  %s" % (src, '\n  '.join(try_prefixes)))
-            self.missing.append(MissingFile(pattern=src, tried=try_prefixes))
+            if err_if_missing == True:
+                self.missing.append(MissingFile(pattern=src, tried=try_prefixes))
             # At this point 'count' might never have been successfully
             # assigned! Even if it was, though, we can be sure it is 0.
             return 0
@@ -886,6 +887,35 @@ def try_path(src):
         # particular, let caller notice 0.
         return count
 
+    def path_optional(self, src, dst=None):
+        """
+        For a number of our self.path() calls, not only do we want
+        to deal with the absence of src, we also want to remember
+        which were present. Return either an empty list (absent)
+        or a list containing dst (present). Concatenate these
+        return values to get a list of all libs that are present.
+        """
+        if dst == None:
+            dst = src
+
+        # This was simple before we started needing to pass
+        # wildcards. Fortunately, self.path() ends up appending a
+        # (source, dest) pair to self.file_list for every expanded
+        # file processed. Remember its size before the call.
+        oldlen = len(self.file_list)
+        try:
+            self.path(src, dst, False)
+            # The dest appended to self.file_list has been prepended
+            # with self.get_dst_prefix(). Strip it off again.
+            added = [os.path.relpath(d, self.get_dst_prefix())
+                     for s, d in self.file_list[oldlen:]]
+        except (ManifestError, MissingError) as err:
+            print >> sys.stderr, "Warning: "+err.msg
+            added = []
+        if not added:
+            print "Skipping %s" % dst
+        return added
+
     def do(self, *actions):
         self.actions = actions
         self.construct()
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index ff96ba270f6ee96ee6f56dce26985deb03cd5ef1..e03944ade76e380abc17e7c3a48a760076c4a445 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -50,33 +50,6 @@
 from llbase import llsd
 
 class ViewerManifest(LLManifest):
-    def path_optional(self, src, dst):
-        """
-        For a number of our self.path() calls, not only do we want
-        to deal with the absence of src, we also want to remember
-        which were present. Return either an empty list (absent)
-        or a list containing dst (present). Concatenate these
-        return values to get a list of all libs that are present.
-        """
-        # This was simple before we started needing to pass
-        # wildcards. Fortunately, self.path() ends up appending a
-        # (source, dest) pair to self.file_list for every expanded
-        # file processed. Remember its size before the call.
-        oldlen = len(self.file_list)
-        try:
-            self.path(src, dst)
-            # The dest appended to self.file_list has been prepended
-            # with self.get_dst_prefix(). Strip it off again.
-            added = [os.path.relpath(d, self.get_dst_prefix())
-                     for s, d in self.file_list[oldlen:]]
-        except MissingError as err:
-            print >> sys.stderr, "Warning: "+err.msg
-            added = []
-        if not added:
-            print "Skipping %s" % dst
-        return added
-    
-    
     def is_packaging_viewer(self):
         # Some commands, files will only be included
         # if we are packaging the viewer on windows.