public void start(BundleContext context) throws Exception {
		m_context = context;

		synchronized (m_refList) {
			// Listen for events pertaining to dictionary services.
			m_context.addServiceListener(this, "(&(objectClass=" + DictionaryService.class.getName() + ")" + "(Language=*))");

			// Query for all dictionary services.
			ServiceReference[] refs = m_context.getServiceReferences(DictionaryService.class.getName(), "(Language=*)");

			// Add any dictionaries to the service reference list.
			if (refs != null) {
				for (int i = 0; i < refs.length; i++) {
					// Get the service object.
					Object service = m_context.getService(refs[i]);

					// Make that the service is not being duplicated.
					if ((service != null) && (m_refToObjMap.get(refs[i]) == null)) {
						// Add to the reference list.
						m_refList.add(refs[i]);
						// Map reference to service object for easy look up.
						m_refToObjMap.put(refs[i], service);
					}
				}

				// Register spell checker service if there are any
				// dictionary services.
				if (m_refList.size() > 0) {
					m_reg = m_context.registerService(SpellChecker.class.getName(), new SpellCheckerImpl(), null);
				}
			}
		}
	}