Index: src/java/org/apache/nutch/crawl/FetchScheduleFactory.java
===================================================================
--- src/java/org/apache/nutch/crawl/FetchScheduleFactory.java	(revision 1529801)
+++ src/java/org/apache/nutch/crawl/FetchScheduleFactory.java	(working copy)
@@ -30,7 +30,7 @@
   private FetchScheduleFactory() {}                   // no public ctor
 
   /** Return the FetchSchedule implementation. */
-  public static FetchSchedule getFetchSchedule(Configuration conf) {
+  public synchronized static FetchSchedule getFetchSchedule(Configuration conf) {
     String clazz = conf.get("db.fetch.schedule.class", DefaultFetchSchedule.class.getName());
     ObjectCache objectCache = ObjectCache.get(conf);
     FetchSchedule impl = (FetchSchedule)objectCache.getObject(clazz);
Index: src/java/org/apache/nutch/crawl/SignatureFactory.java
===================================================================
--- src/java/org/apache/nutch/crawl/SignatureFactory.java	(revision 1529801)
+++ src/java/org/apache/nutch/crawl/SignatureFactory.java	(working copy)
@@ -38,7 +38,7 @@
   private SignatureFactory() {}                   // no public ctor
 
   /** Return the default Signature implementation. */
-  public static Signature getSignature(Configuration conf) {
+  public synchronized static Signature getSignature(Configuration conf) {
     String clazz = conf.get("db.signature.class", MD5Signature.class.getName());
     ObjectCache objectCache = ObjectCache.get(conf);
     Signature impl = (Signature)objectCache.getObject(clazz);
Index: src/java/org/apache/nutch/util/ObjectCache.java
===================================================================
--- src/java/org/apache/nutch/util/ObjectCache.java	(revision 1529801)
+++ src/java/org/apache/nutch/util/ObjectCache.java	(working copy)
@@ -36,7 +36,7 @@
     objectMap = new HashMap<String, Object>();
   }
   
-  public static ObjectCache get(Configuration conf) {
+  public synchronized static ObjectCache get(Configuration conf) {
     ObjectCache objectCache = CACHE.get(conf);
     if (objectCache == null) {
       LOG.debug("No object cache found for conf=" + conf 
@@ -47,11 +47,11 @@
     return objectCache;
   }
   
-  public Object getObject(String key) {
+  public synchronized Object getObject(String key) {
     return objectMap.get(key);
   }
   
-  public void setObject(String key, Object value) {
+  public synchronized void setObject(String key, Object value) {
     objectMap.put(key, value);
   }
 }
