=== modified file 'common/searchhelpfilefullpath.cpp'
--- common/searchhelpfilefullpath.cpp	2014-10-19 20:20:16 +0000
+++ common/searchhelpfilefullpath.cpp	2014-11-18 05:44:36 +0000
@@ -63,6 +63,7 @@
 {
     wxArrayString   subdirs;
     wxArrayString   altsubdirs;
+    wxArrayString   macsubdirs;
     SEARCH_STACK    ss = aSStack;
 
     // It might already be in aSStack, but why depend on other code
@@ -72,6 +73,9 @@
 
     // If there's a KICAD environment variable set, use that guy's path also
     ss.AddPaths( Pgm().GetKicadEnvVariable(), 0 );
+    
+    //For OS X
+    ss.AddPaths( Pgm().GetExecutablePath(), 0 );
 
 #if 1 // && defined(__linux__)
     // Based on kicad-doc.bzr/CMakeLists.txt, line 20, the help files are
@@ -93,6 +97,14 @@
     altsubdirs.Add( wxT( "help" ) );
 #endif
 
+#if 1 // 
+    // OS X packages can have the help files in the 
+    // help/ directory at the same level as kicad.app.
+    // Below we account for an international subdirectory.
+    macsubdirs.Add( wxT( ".." ) );
+    macsubdirs.Add( wxT( "help" ) );
+#endif
+
     /* Search for a help file.
      *  we *must* find a help file.
      *  so help is searched in directories in this order:
@@ -146,9 +158,20 @@
 
         if( !fn.IsEmpty() )
             break;
+        
+        fn = FindFileInSearchPaths( ss, aBaseName + wxT(".html"), &macsubdirs );
+
+        if( !fn.IsEmpty() )
+            break;
+
+        fn = FindFileInSearchPaths( ss, aBaseName + wxT(".pdf"), &macsubdirs );
+
+        if( !fn.IsEmpty() )
+            break;
 
         subdirs.RemoveAt( subdirs.GetCount() - 1 );
         altsubdirs.RemoveAt( altsubdirs.GetCount() - 1 );
+        macsubdirs.RemoveAt( macsubdirs.GetCount() - 1 );
     }
 
     return fn;

