diff --git a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/LocalRepositoryImpl.java b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/LocalRepositoryImpl.java
index 71b0fb9..5d52f3a 100644
--- a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/LocalRepositoryImpl.java
+++ b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/LocalRepositoryImpl.java
@@ -1,4 +1,4 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -68,7 +68,8 @@
     public void serviceChanged(ServiceEvent event)
     {
         Bundle bundle = event.getServiceReference().getBundle();
-        if (bundle.getState() == Bundle.ACTIVE && event.getType() != ServiceEvent.MODIFIED)
+        if ((bundle != null)
+            && (bundle.getState() == Bundle.ACTIVE && event.getType() != ServiceEvent.MODIFIED))
         {
             synchronized (this)
             {
@@ -81,7 +82,6 @@
 
     private void addBundle(Bundle bundle, Logger logger)
     {
-        
         /*
          * Concurrency note: This method MUST be called in a context which
          * is synchronized on this instance to prevent data structure
@@ -104,19 +104,18 @@
             m_logger.log(Logger.LOG_WARNING, ex.getMessage(), ex);
         }
     }
-    
+
     private void removeBundle(Bundle bundle, Logger logger)
     {
-        
         /*
          * Concurrency note: This method MUST be called in a context which
          * is synchronized on this instance to prevent data structure
          * corruption.
          */
-        
+
         m_localResourceList.remove(new Long(bundle.getBundleId()));
     }
-    
+
     public void dispose()
     {
         m_context.removeBundleListener(this);
@@ -150,9 +149,9 @@
         m_context.addServiceListener(this);
 
         // Generate the resource list from the set of installed bundles.
-        // Lock so we can ensure that no bundle events arrive before we 
+        // Lock so we can ensure that no bundle events arrive before we
         // are done getting our state snapshot.
-        Bundle[] bundles = null;
+        Bundle[] bundles;
         synchronized (this)
         {
             // Create a local resource object for each bundle, which will
@@ -166,5 +165,4 @@
             m_snapshotTimeStamp = System.currentTimeMillis();
         }
     }
-
-}
+}
\ No newline at end of file
