diff --git a/solr-conf/1.4/schema.xml b/solr-conf/1.4/schema.xml
index 543d276..3c7a45a 100644
--- a/solr-conf/1.4/schema.xml
+++ b/solr-conf/1.4/schema.xml
@@ -10,7 +10,7 @@
  http://wiki.apache.org/solr/SchemaXml
 -->
 
-<schema name="drupal-4.0-solr-1.4" version="1.2">
+<schema name="drupal-4.1-solr-1.4" version="1.2">
     <!-- attribute "name" is the name of this schema and is only used for display purposes.
          Applications should change this to reflect the nature of the search collection.
          version="1.2" is Solr's version number for the schema syntax and semantics.  It should
@@ -318,13 +318,13 @@
       -->
     <fieldtype name="ignored" stored="false" indexed="false" class="solr.StrField" />
 
-    <!-- Following is a dynamic way to include other types, added by other contrib modules -->
-    <xi:include href="schema_i18n_types.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
-      <xi:fallback></xi:fallback>
-    </xi:include>
-
   </types>
 
+  <!-- Following is a dynamic way to include other types, added by other contrib modules -->
+  <xi:include href="solr/conf/schema_extra_types.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+    <xi:fallback></xi:fallback>
+  </xi:include>
+
 
   <fields>
     <!-- Valid attributes for fields:
@@ -508,11 +508,6 @@
     <!-- This field is used to store access information (e.g. node access grants), as opposed to field data -->
     <dynamicField name="access_*" type="integer" indexed="true" stored="false" multiValued="true"/>
 
-    <!-- Following is a dynamic way to include other fields, added by other contrib modules -->
-    <xi:include href="schema_i18n_fields.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
-      <xi:fallback></xi:fallback>
-    </xi:include>
-
     <!-- The following causes solr to ignore any fields that don't already match an existing
          field name or dynamic field, rather than reporting them as an error.
          Alternately, change the type="ignored" to some other type e.g. "text" if you want
@@ -521,6 +516,11 @@
 
   </fields>
 
+  <!-- Following is a dynamic way to include other fields, added by other contrib modules -->
+  <xi:include href="solr/conf/schema_extra_fields.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+    <xi:fallback></xi:fallback>
+  </xi:include>
+
   <!-- Field to use to determine and enforce document uniqueness.
        Unless this field is marked with required="false", it will be a required field
     -->
diff --git a/solr-conf/1.4/schema_extra_fields.xml b/solr-conf/1.4/schema_extra_fields.xml
new file mode 100644
index 0000000..9ecd5f4
--- /dev/null
+++ b/solr-conf/1.4/schema_extra_fields.xml
@@ -0,0 +1,23 @@
+<fields>
+<!--
+  Adding German dynamic field types to our Solr Schema
+  If you enable this, make sure you have a folder called lang with stopwords_de.txt
+  and synonyms_de.txt in there
+  This also requires to enable the content in schema_extra_types.xml
+-->
+<!--
+   <field name="label_de" type="text_de" indexed="true" stored="true" termVectors="true" omitNorms="true"/>
+   <field name="content_de" type="text_de" indexed="true" stored="true" termVectors="true"/>
+   <field name="teaser_de" type="text_de" indexed="false" stored="true"/>
+   <field name="path_alias_de" type="text_de" indexed="true" stored="true" termVectors="true" omitNorms="true"/>
+   <field name="taxonomy_names_de" type="text_de" indexed="true" stored="false" termVectors="true" multiValued="true" omitNorms="true"/>
+   <field name="spell_de" type="text_de" indexed="true" stored="true" multiValued="true"/>
+   <copyField source="label_de" dest="spell_de"/>
+   <copyField source="content_de" dest="spell_de"/>
+   <dynamicField name="tags_de_*" type="text_de" indexed="true" stored="false" omitNorms="true"/>
+   <dynamicField name="ts_de_*" type="text_de" indexed="true" stored="true" multiValued="false" termVectors="true"/>
+   <dynamicField name="tm_de_*" type="text_de" indexed="true" stored="true" multiValued="true" termVectors="true"/>
+   <dynamicField name="tos_de_*" type="text_de" indexed="true" stored="true" multiValued="false" termVectors="true" omitNorms="true"/>
+   <dynamicField name="tom_de_*" type="text_de" indexed="true" stored="true" multiValued="true" termVectors="true" omitNorms="true"/>
+-->
+</fields>
diff --git a/solr-conf/1.4/schema_extra_types.xml b/solr-conf/1.4/schema_extra_types.xml
new file mode 100644
index 0000000..e82072e
--- /dev/null
+++ b/solr-conf/1.4/schema_extra_types.xml
@@ -0,0 +1,30 @@
+<types>
+<!--
+  Adding German language to our Solr Schema German
+  If you enable this, make sure you have a folder called lang with stopwords_de.txt
+  and synonyms_de.txt in there
+-->
+<!--
+    <fieldType name="text_de" class="solr.TextField" positionIncrementGap="100">
+      <analyzer type="index">
+        <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
+        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <filter class="solr.StopFilterFactory" words="lang/stopwords_de.txt" format="snowball" ignoreCase="true" enablePositionIncrements="true"/>
+        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" splitOnCaseChange="1" splitOnNumerics="1" catenateWords="1" catenateNumbers="1" catenateAll="0" protected="protwords.txt" preserveOriginal="1"/>
+        <filter class="solr.LowerCaseFilterFactory"/>
+        <filter class="solr.GermanLightStemFilterFactory"/>
+        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
+      </analyzer>
+      <analyzer type="query">
+        <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
+        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
+        <filter class="solr.SynonymFilterFactory" synonyms="lang/synonyms_de.txt" ignoreCase="true" expand="true"/>
+        <filter class="solr.StopFilterFactory" words="lang/stopwords_de.txt" format="snowball" ignoreCase="true" enablePositionIncrements="true"/>
+        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" splitOnCaseChange="1" splitOnNumerics="1" catenateWords="0" catenateNumbers="0" catenateAll="0" protected="protwords.txt" preserveOriginal="1"/>
+        <filter class="solr.LowerCaseFilterFactory"/>
+        <filter class="solr.GermanLightStemFilterFactory"/>
+        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
+      </analyzer>
+    </fieldType>
+-->
+</types>
diff --git a/solr-conf/1.4/solrconfig.xml b/solr-conf/1.4/solrconfig.xml
index 246be0e..2f436c6 100644
--- a/solr-conf/1.4/solrconfig.xml
+++ b/solr-conf/1.4/solrconfig.xml
@@ -20,7 +20,7 @@
      For more details about configurations options that may appear in
      this file, see http://wiki.apache.org/solr/SolrConfigXml.
 -->
-<config>
+<config name="drupal-4.1-solr-3.x">
   <!-- In all configuration below, a prefix of "solr." for class names
        is an alias that causes solr to search appropriate packages,
        including org.apache.solr.(search|update|request|core|analysis)
@@ -302,8 +302,8 @@
                    triggering a new commit.
       -->
     <autoCommit>
-      <maxDocs>10000</maxDocs>
-      <maxTime>120000</maxTime>
+      <maxDocs>${solr.autoCommit.MaxDocs:10000}</maxDocs>
+      <maxTime>${solr.autoCommit.MaxTime:120000}</maxTime>
     </autoCommit>
 
     <!-- Update Related Event Listeners
@@ -849,7 +849,7 @@
       <bool name="omitHeader">true</bool>
       <float name="tie">0.01</float>
       <!-- Don't abort searches for the pinkPony request handler (set in solrcore.properties) -->
-      <int name="timeAllowed">${pinkPony.timeAllowed:-1}</int>
+      <int name="timeAllowed">${solr.pinkPony.timeAllowed:-1}</int>
       <str name="q.alt">*:*</str>
 
       <!-- By default, don't spell check -->
@@ -876,7 +876,7 @@
       <str name="mlt.maxqt">20</str>
       <str name="mlt.match.include">false</str>
       <!-- Abort any searches longer than 2 seconds (set in solrcore.properties) -->
-      <int name="timeAllowed">${mlt.timeAllowed:2000}</int>
+      <int name="timeAllowed">${solr.mlt.timeAllowed:2000}</int>
     </lst>
   </requestHandler>
 
@@ -1070,15 +1070,15 @@
     -->
      <requestHandler name="/replication" class="solr.ReplicationHandler" >
        <lst name="master">
-         <str name="enable">${enable.master:false}</str>
+         <str name="enable">${solr.replication.master:false}</str>
          <str name="replicateAfter">commit</str>
          <str name="replicateAfter">startup</str>
-         <str name="confFiles">${confFiles}</str>
+         <str name="confFiles">${solr.replication.confFiles:schema.xml,mapping-ISOLatin1Accent.txt,protwords.txt,stopwords.txt,synonyms.txt,elevate.xml}</str>
        </lst>
        <lst name="slave">
-         <str name="enable">${enable.slave:false}</str>
-         <str name="masterUrl">${masterCoreUrl}/replication</str>
-         <str name="pollInterval">${pollTime:00:00:60}</str>
+         <str name="enable">${solr.replication.slave:false}</str>
+         <str name="masterUrl">${solr.replication.masterUrl:http://localhost:8983/solr}/replication</str>
+         <str name="pollInterval">${solr.replication.pollInterval:00:00:60}</str>
        </lst>
      </requestHandler>
 
@@ -1125,73 +1125,6 @@
 
      -->
 
-   <!-- Spell Check
-
-        The spell check component can return a list of alternative spelling
-        suggestions.
-
-        http://wiki.apache.org/solr/SpellCheckComponent
-     -->
-  <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
-
-    <str name="queryAnalyzerFieldType">textSpell</str>
-
-    <!-- Multiple "Spell Checkers" can be declared and used by this
-         component
-      -->
-
-    <!-- a spellchecker built from a field of the main index, and
-         written to disk
-      -->
-    <lst name="spellchecker">
-      <str name="name">default</str>
-      <str name="field">name</str>
-      <str name="spellcheckIndexDir">spellchecker</str>
-      <!-- uncomment this to require terms to occur in 1% of the documents in order to be included in the dictionary
-        <float name="thresholdTokenFrequency">.01</float>
-      -->
-    </lst>
-
-    <!-- a spellchecker that uses a different distance measure -->
-    <!--
-       <lst name="spellchecker">
-         <str name="name">jarowinkler</str>
-         <str name="field">spell</str>
-         <str name="distanceMeasure">
-           org.apache.lucene.search.spell.JaroWinklerDistance
-         </str>
-         <str name="spellcheckIndexDir">spellcheckerJaro</str>
-       </lst>
-     -->
-
-    <!-- a spellchecker that use an alternate comparator
-
-         comparatorClass be one of:
-          1. score (default)
-          2. freq (Frequency first, then score)
-          3. A fully qualified class name
-      -->
-    <!--
-       <lst name="spellchecker">
-         <str name="name">freq</str>
-         <str name="field">lowerfilt</str>
-         <str name="spellcheckIndexDir">spellcheckerFreq</str>
-         <str name="comparatorClass">freq</str>
-         <str name="buildOnCommit">true</str>
-      -->
-
-    <!-- A spellchecker that reads the list of words from a file -->
-    <!--
-       <lst name="spellchecker">
-         <str name="classname">solr.FileBasedSpellChecker</str>
-         <str name="name">file</str>
-         <str name="sourceLocation">spellings.txt</str>
-         <str name="characterEncoding">UTF-8</str>
-         <str name="spellcheckIndexDir">spellcheckerFile</str>
-       </lst>
-      -->
-  </searchComponent>
-
   <!-- A request handler for demonstrating the spellcheck component.
 
        NOTE: This is purely as an example.  The whole purpose of the
@@ -1633,5 +1566,33 @@
        <healthcheck type="file">server-enabled</healthcheck>
       -->
   </admin>
+      
+  <queryConverter name="queryConverter" class="solr.SpellingQueryConverter"/>
+
+  <!-- Following is a dynamic way to include other components or any customized solrconfig.xml stuff, added by other contrib modules -->
+  <xi:include href="solr/conf/solrconfig_extra.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+    <xi:fallback>
+      <!-- Spell Check
+  
+          The spell check component can return a list of alternative spelling
+          suggestions. This component must be defined in
+          solrconfig_extra.xml if present, since it's used in the search handler.
+  
+          http://wiki.apache.org/solr/SpellCheckComponent
+       -->
+      <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
+  
+        <str name="queryAnalyzerFieldType">textSpell</str>
+    
+        <!-- a spellchecker built from a field of the main index -->
+        <lst name="spellchecker">
+          <str name="name">default</str>
+          <str name="field">content</str>
+          <str name="spellcheckIndexDir">spellchecker</str>
+          <str name="buildOnOptimize">true</str>
+        </lst>
+      </searchComponent>
+    </xi:fallback>
+  </xi:include>
 
 </config>
diff --git a/solr-conf/1.4/solrconfig_extra.xml b/solr-conf/1.4/solrconfig_extra.xml
new file mode 100644
index 0000000..4b4873a
--- /dev/null
+++ b/solr-conf/1.4/solrconfig_extra.xml
@@ -0,0 +1,80 @@
+<!-- Spell Check
+
+    The spell check component can return a list of alternative spelling
+    suggestions.
+
+    http://wiki.apache.org/solr/SpellCheckComponent
+ -->
+<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
+
+<str name="queryAnalyzerFieldType">textSpell</str>
+
+<!-- Multiple "Spell Checkers" can be declared and used by this
+     component
+  -->
+
+<!-- a spellchecker built from a field of the main index, and
+     written to disk
+  -->
+<lst name="spellchecker">
+  <str name="name">default</str>
+  <str name="field">content</str>
+  <str name="spellcheckIndexDir">spellchecker</str>
+  <str name="buildOnOptimize">true</str>
+  <!-- uncomment this to require terms to occur in 1% of the documents in order to be included in the dictionary
+    <float name="thresholdTokenFrequency">.01</float>
+  -->
+</lst>
+
+<!--
+  Adding German spellhecker index to our Solr index
+  This also requires to enable the content in schema_extra_types.xml and schema_extra_fields.xml
+-->
+<!--
+<lst name="spellchecker">
+  <str name="name">spellchecker_de</str>
+  <str name="field">spell_de</str>
+  <str name="spellcheckIndexDir">./spellchecker_de</str>
+  <str name="buildOnOptimize">true</str>
+</lst>
+-->
+
+<!-- a spellchecker that uses a different distance measure -->
+<!--
+   <lst name="spellchecker">
+     <str name="name">jarowinkler</str>
+     <str name="field">spell</str>
+     <str name="distanceMeasure">
+       org.apache.lucene.search.spell.JaroWinklerDistance
+     </str>
+     <str name="spellcheckIndexDir">spellcheckerJaro</str>
+   </lst>
+ -->
+
+<!-- a spellchecker that use an alternate comparator
+
+     comparatorClass be one of:
+      1. score (default)
+      2. freq (Frequency first, then score)
+      3. A fully qualified class name
+  -->
+<!--
+   <lst name="spellchecker">
+     <str name="name">freq</str>
+     <str name="field">lowerfilt</str>
+     <str name="spellcheckIndexDir">spellcheckerFreq</str>
+     <str name="comparatorClass">freq</str>
+     <str name="buildOnCommit">true</str>
+  -->
+
+<!-- A spellchecker that reads the list of words from a file -->
+<!--
+   <lst name="spellchecker">
+     <str name="classname">solr.FileBasedSpellChecker</str>
+     <str name="name">file</str>
+     <str name="sourceLocation">spellings.txt</str>
+     <str name="characterEncoding">UTF-8</str>
+     <str name="spellcheckIndexDir">spellcheckerFile</str>
+   </lst>
+  -->
+</searchComponent>
diff --git a/solr-conf/1.4/solrcore.properties b/solr-conf/1.4/solrcore.properties
index 476f8dd..f5ede05 100644
--- a/solr-conf/1.4/solrcore.properties
+++ b/solr-conf/1.4/solrcore.properties
@@ -1,8 +1,10 @@
-#solrcore.properties for this specific core
-enable.master=false
-enable.slave=false
-pollTime=00:00:60
-masterCoreUrl=http://localhost:8983/solr
-confFiles=schema.xml,mapping-ISOLatin1Accent.txt,protwords.txt,stopwords.txt,synonyms.txt,elevate.xml
-mlt.timeAllowed=2000
-pinkPony.timeAllowed=-1
+# Defines Solr properties for this specific core.
+solr.replication.master=false
+solr.replication.slave=false
+solr.replication.pollInterval=00:00:60
+solr.replication.masterUrl=http://localhost:8983/solr
+solr.replication.confFiles=schema.xml,mapping-ISOLatin1Accent.txt,protwords.txt,stopwords.txt,synonyms.txt,elevate.xml
+solr.mlt.timeAllowed=2000
+solr.pinkPony.timeAllowed=-1
+solr.autoCommit.MaxDocs=10000
+solr.autoCommit.MaxTime=120000
diff --git a/solr-conf/3.x/protwords.txt b/solr-conf/3.x/protwords.txt
index f0fd084..cda8581 100644
--- a/solr-conf/3.x/protwords.txt
+++ b/solr-conf/3.x/protwords.txt
@@ -5,4 +5,3 @@
 &gt;
 &#039;
 &quot;
-
diff --git a/solr-conf/3.x/schema.xml b/solr-conf/3.x/schema.xml
index 663a3d1..6953ccb 100644
--- a/solr-conf/3.x/schema.xml
+++ b/solr-conf/3.x/schema.xml
@@ -10,7 +10,7 @@
  http://wiki.apache.org/solr/SchemaXml
 -->
 
-<schema name="drupal-4.0-solr-3.x" version="1.3">
+<schema name="drupal-4.1-solr-3.x" version="1.3">
     <!-- attribute "name" is the name of this schema and is only used for display purposes.
          Applications should change this to reflect the nature of the search collection.
          version="1.2" is Solr's version number for the schema syntax and semantics.  It should
@@ -252,7 +252,7 @@
 
     <!-- Edge N gram type - for example for matching against queries with results
         KeywordTokenizer leaves input string intact as a single term.
-        see: http://www.lucidimagination.com/blog/2009/09/08/auto-suggest-from-popular-queries-using-edgengrams/ 
+        see: http://www.lucidimagination.com/blog/2009/09/08/auto-suggest-from-popular-queries-using-edgengrams/
       -->
     <fieldType name="edge_n2_kw_text" class="solr.TextField" omitNorms="true" positionIncrementGap="100">
       <analyzer type="index">
diff --git a/solr-conf/3.x/solrconfig.xml b/solr-conf/3.x/solrconfig.xml
index ce3fab0..632f284 100644
--- a/solr-conf/3.x/solrconfig.xml
+++ b/solr-conf/3.x/solrconfig.xml
@@ -16,11 +16,11 @@
  limitations under the License.
 -->
 
-<!-- 
+<!--
      For more details about configurations options that may appear in
-     this file, see http://wiki.apache.org/solr/SolrConfigXml. 
+     this file, see http://wiki.apache.org/solr/SolrConfigXml.
 -->
-<config>
+<config name="drupal-4.1-solr-3.x">
   <!-- In all configuration below, a prefix of "solr." for class names
        is an alias that causes solr to search appropriate packages,
        including org.apache.solr.(search|update|request|core|analysis)
@@ -40,14 +40,14 @@
          -Dsolr.abortOnConfigurationError=false
     -->
   <abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>
-  
+
   <!-- Controls what version of Lucene various components of Solr
        adhere to.  Generally, you want to use the latest version to
        get all bug fixes and improvements. It is highly recommended
        that you fully re-index after changing this setting as it can
        affect both how text is indexed and queried.
     -->
-  <luceneMatchVersion>${luceneVersion:LUCENE_35}</luceneMatchVersion>
+  <luceneMatchVersion>${solr.luceneMatchVersion:LUCENE_35}</luceneMatchVersion>
 
   <!-- lib directives can be used to instruct Solr to load an Jars
        identified and use them to resolve any "plugins" specified in
@@ -307,15 +307,15 @@
 
          maxTime - Maximum amount of time that is allowed to pass
                    since a document was added before automaticly
-                   triggering a new commit. 
+                   triggering a new commit.
       -->
-    <autoCommit> 
-      <maxDocs>10000</maxDocs>
-      <maxTime>120000</maxTime> 
+    <autoCommit>
+      <maxDocs>${solr.autoCommit.MaxDocs:10000}</maxDocs>
+      <maxTime>${solr.autoCommit.MaxTime:120000}</maxTime>
     </autoCommit>
 
     <!-- Update Related Event Listeners
-         
+
          Various IndexWriter related events can trigger Listeners to
          take actions.
 
@@ -857,7 +857,7 @@
       <bool name="omitHeader">true</bool>
       <float name="tie">0.01</float>
       <!-- Don't abort searches for the pinkPony request handler (set in solrcore.properties) -->
-      <int name="timeAllowed">${pinkPony.timeAllowed:-1}</int>
+      <int name="timeAllowed">${solr.pinkPony.timeAllowed:-1}</int>
       <str name="q.alt">*:*</str>
 
       <!-- By default, don't spell check -->
@@ -884,7 +884,7 @@
       <str name="mlt.maxqt">20</str>
       <str name="mlt.match.include">false</str>
       <!-- Abort any searches longer than 2 seconds (set in solrcore.properties) -->
-      <int name="timeAllowed">${mlt.timeAllowed:2000}</int>
+      <int name="timeAllowed">${solr.mlt.timeAllowed:2000}</int>
     </lst>
   </requestHandler>
 
@@ -1078,32 +1078,32 @@
     -->
      <requestHandler name="/replication" class="solr.ReplicationHandler" >
        <lst name="master">
-         <str name="enable">${enable.master:false}</str>
+         <str name="enable">${solr.replication.master:false}</str>
          <str name="replicateAfter">commit</str>
          <str name="replicateAfter">startup</str>
-         <str name="confFiles">${confFiles}</str>
+         <str name="confFiles">${solr.replication.confFiles:schema.xml,mapping-ISOLatin1Accent.txt,protwords.txt,stopwords.txt,synonyms.txt,elevate.xml}</str>
        </lst>
        <lst name="slave">
-         <str name="enable">${enable.slave:false}</str>
-         <str name="masterUrl">${masterCoreUrl}/replication</str>
-         <str name="pollInterval">${pollTime:00:00:60}</str>
+         <str name="enable">${solr.replication.slave:false}</str>
+         <str name="masterUrl">${solr.replication.masterUrl:http://localhost:8983/solr}/replication</str>
+         <str name="pollInterval">${solr.replication.pollInterval:00:00:60}</str>
        </lst>
      </requestHandler>
 
   <!-- Search Components
 
-       Search components are registered to SolrCore and used by 
+       Search components are registered to SolrCore and used by
        instances of SearchHandler (which can access them by name)
-       
+
        By default, the following components are available:
-       
+
        <searchComponent name="query"     class="solr.QueryComponent" />
        <searchComponent name="facet"     class="solr.FacetComponent" />
        <searchComponent name="mlt"       class="solr.MoreLikeThisComponent" />
        <searchComponent name="highlight" class="solr.HighlightComponent" />
        <searchComponent name="stats"     class="solr.StatsComponent" />
        <searchComponent name="debug"     class="solr.DebugComponent" />
-   
+
        Default configuration in a requestHandler would look like:
 
        <arr name="components">
@@ -1577,7 +1577,28 @@
 
   <!-- Following is a dynamic way to include other components or any customized solrconfig.xml stuff, added by other contrib modules -->
   <xi:include href="solrconfig_extra.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
-    <xi:fallback></xi:fallback>
+    <xi:fallback>
+    <!-- Spell Check
+
+        The spell check component can return a list of alternative spelling
+        suggestions. This component must be defined in
+        solrconfig_extra.xml if present, since it's used in the search handler.
+
+        http://wiki.apache.org/solr/SpellCheckComponent
+     -->
+    <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
+
+    <str name="queryAnalyzerFieldType">textSpell</str>
+
+    <!-- a spellchecker built from a field of the main index -->
+      <lst name="spellchecker">
+        <str name="name">default</str>
+        <str name="field">content</str>
+        <str name="spellcheckIndexDir">spellchecker</str>
+        <str name="buildOnOptimize">true</str>
+      </lst>
+    </searchComponent>
+    </xi:fallback>
   </xi:include>
 
 </config>
diff --git a/solr-conf/3.x/solrconfig_extra.xml b/solr-conf/3.x/solrconfig_extra.xml
index 5ce04b8..4b4873a 100644
--- a/solr-conf/3.x/solrconfig_extra.xml
+++ b/solr-conf/3.x/solrconfig_extra.xml
@@ -20,6 +20,7 @@
   <str name="name">default</str>
   <str name="field">content</str>
   <str name="spellcheckIndexDir">spellchecker</str>
+  <str name="buildOnOptimize">true</str>
   <!-- uncomment this to require terms to occur in 1% of the documents in order to be included in the dictionary
     <float name="thresholdTokenFrequency">.01</float>
   -->
diff --git a/solr-conf/3.x/solrcore.properties b/solr-conf/3.x/solrcore.properties
index 0f3933d..54a33c9 100644
--- a/solr-conf/3.x/solrcore.properties
+++ b/solr-conf/3.x/solrcore.properties
@@ -1,10 +1,12 @@
-#solrcore.properties for this specific core
-enable.master=false
-enable.slave=false
-pollTime=00:00:60
-masterCoreUrl=http://localhost:8983/solr
-confFiles=schema.xml,mapping-ISOLatin1Accent.txt,protwords.txt,stopwords.txt,synonyms.txt,elevate.xml
-mlt.timeAllowed=2000
-# You should not set your luceneVersion to anything lower then your Solr Version
-luceneVersion=LUCENE_35
-pinkPony.timeAllowed=-1
+# Defines Solr properties for this specific core.
+solr.replication.master=false
+solr.replication.slave=false
+solr.replication.pollInterval=00:00:60
+solr.replication.masterUrl=http://localhost:8983/solr
+solr.replication.confFiles=schema.xml,mapping-ISOLatin1Accent.txt,protwords.txt,stopwords.txt,synonyms.txt,elevate.xml
+solr.mlt.timeAllowed=2000
+# You should not set your luceneVersion to anything lower then your Solr Version.
+solr.luceneMatchVersion=LUCENE_35
+solr.pinkPony.timeAllowed=-1
+solr.autoCommit.MaxDocs=10000
+solr.autoCommit.MaxTime=120000
