diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog
index d505f57557c..761321b6be0 100644
--- a/core/org.eclipse.cdt.core/ChangeLog
+++ b/core/org.eclipse.cdt.core/ChangeLog
@@ -1,3 +1,7 @@
+2005-06-29 Alain Magloire
+	Patch From Chris Wiebe fix PR 101386
+	* utils/org/eclipse/cdt/utils/macho/MachO.java
+
 2005-06-26 Vladimir Hirsl
 	Fix for 101344: problem markers are not being removed from header files
 	Fixed removing indexer problem markers originally created by indexing 
diff --git a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/macho/MachO.java b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/macho/MachO.java
index fc1f1b4dd6b..b51aa1075f2 100644
--- a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/macho/MachO.java
+++ b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/macho/MachO.java
@@ -245,6 +245,9 @@ public class MachO {
 		public int cmdsize;
 	}
 	
+	public class UnknownCommand extends LoadCommand {
+	}
+	
 	public class LCStr {
 		public long offset;
 		public long ptr;
@@ -1337,6 +1340,7 @@ public class MachO {
 
 					case LoadCommand.LC_LOAD_DYLIB:
 					case LoadCommand.LC_ID_DYLIB:
+					case LoadCommand.LC_LOAD_WEAK_DYLIB:
 						DyLibCommand dylcmd = new DyLibCommand();
 						dylcmd.cmd = cmd;
 						dylcmd.cmdsize = efile.readIntE();
@@ -1458,6 +1462,14 @@ public class MachO {
 						pbccmd.cksum = efile.readIntE();
 						loadcommands[i] = pbccmd;
 						break;
+						
+					default:
+						// fallback, just in case we don't recognize the command
+						UnknownCommand unknowncmd = new UnknownCommand();
+						unknowncmd.cmd = cmd;
+						unknowncmd.cmdsize = 0;
+						loadcommands[i] = unknowncmd;
+						break;
 				}
 			}
 		}