diff --git a/karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/InstallCommand.java b/karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/InstallCommand.java
index 4818d26..77ae201 100644
--- a/karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/InstallCommand.java
+++ b/karaf/shell/wrapper/src/main/java/org/apache/felix/karaf/shell/wrapper/InstallCommand.java
@@ -70,14 +70,22 @@
 			props.put("${startType}", getStartType());
 			
 			String os = System.getProperty("os.name", "Unknown");
-			File serviceFile=null;
+			File serviceFile = null;
+			File wrapperConf = null;
 			if( os.startsWith("Win") ) {
 				mkdir(bin);
+
 				copyResourceTo(new File(bin, name+"-wrapper.exe"), "windows/karaf-wrapper.exe", false);
+
 				serviceFile = new File(bin,name+"-service.bat");
+
+				wrapperConf = new File(etc,name+"-wrapper.conf");
+				copyFilteredResourceTo(wrapperConf, "windows/karaf-wrapper.conf", props);
+
 				copyFilteredResourceTo(serviceFile, "windows/karaf-service.bat", props);
+
 				mkdir(lib);
-				copyResourceTo(new File(bin, "wrapper.dll"), "windows/wrapper.dll", false);								
+				copyResourceTo(new File(lib, "wrapper.dll"), "windows/wrapper.dll", false);								
 			} else if( os.startsWith("Mac OS X") ) {
 				mkdir(bin);
 				
@@ -89,6 +97,9 @@
 				copyFilteredResourceTo(serviceFile, "unix/karaf-service", props);
 				chmod(serviceFile, "a+x");
 				
+				wrapperConf = new File(etc,name+"-wrapper.conf");
+				copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf", props);
+
 				mkdir(lib);
 				copyResourceTo(new File(lib, "libwrapper.jnilib"), "macosx/libwrapper.jnilib", false);
 				
@@ -105,6 +116,9 @@
 				copyFilteredResourceTo(serviceFile, "unix/karaf-service", props);
 				chmod(serviceFile, "a+x");
 				
+				wrapperConf = new File(etc,name+"-wrapper.conf");
+				copyFilteredResourceTo(wrapperConf, "unix/karaf-wrapper.conf", props);
+
 				mkdir(lib);
 				copyResourceTo(new File(lib, "libwrapper.so"), "linux/libwrapper.so", false);
 				
@@ -119,8 +133,6 @@
 			mkdir(lib);
 			copyResourceTo(new File(lib, "karaf-wrapper.jar"), "all/karaf-wrapper.jar", false);
 			mkdir(etc);
-			File wrapperConf = new File(etc,name+"-wrapper.conf");
-			copyFilteredResourceTo(wrapperConf, "all/karaf-wrapper.conf", props);
 
 			System.out.println("");
 			System.out.println("Setup complete.  You may want to tweak the JVM properties in the wrapper configuration file:");
diff --git a/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/all/karaf-wrapper.conf b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/unix/karaf-wrapper.conf
similarity index 100%
rename from karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/all/karaf-wrapper.conf
rename to karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/unix/karaf-wrapper.conf
diff --git a/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/windows/karaf-wrapper.conf b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/windows/karaf-wrapper.conf
new file mode 100644
index 0000000..d146470
--- /dev/null
+++ b/karaf/shell/wrapper/src/main/resources/org/apache/felix/karaf/shell/wrapper/windows/karaf-wrapper.conf
@@ -0,0 +1,124 @@
+# ------------------------------------------------------------------------
+# 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 regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ------------------------------------------------------------------------
+
+#********************************************************************
+# Wrapper Properties
+#********************************************************************
+set.default.KARAF_HOME=${karaf.home}
+set.default.KARAF_BASE=${karaf.base}
+
+# Java Application
+wrapper.working.dir=%KARAF_BASE%
+wrapper.java.command=java
+wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
+wrapper.java.classpath.1=%KARAF_BASE%/lib/karaf-wrapper.jar
+wrapper.java.classpath.2=%KARAF_HOME%/lib/karaf.jar
+wrapper.java.classpath.3=%KARAF_HOME%/lib/karaf-jaas-boot.jar
+wrapper.java.library.path.1=%KARAF_BASE%/lib/
+
+# Application Parameters.  Add parameters as needed starting from 1
+wrapper.app.parameter.1=org.apache.felix.karaf.main.Bootstrap
+
+# JVM Parameters
+# note that n is the parameter number starting from 1.
+wrapper.java.additional.1=-Dkaraf.home="%KARAF_HOME%"
+wrapper.java.additional.2=-Dkaraf.base="%KARAF_BASE%"
+wrapper.java.additional.3=-Dcom.sun.management.jmxremote
+wrapper.java.additional.4=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.5=-Dkaraf.startRemoteShell=true
+
+# Uncomment to enable jmx
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
+
+# Uncomment to enable YourKit profiling
+#wrapper.java.additional.n=-Xrunyjpagent
+
+# Uncomment to enable remote debugging
+#wrapper.java.additional.n=-Xdebug -Xnoagent -Djava.compiler=NONE
+#wrapper.java.additional.n=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
+
+# Initial Java Heap Size (in MB)
+#wrapper.java.initmemory=3
+
+# Maximum Java Heap Size (in MB)
+wrapper.java.maxmemory=512
+
+
+#********************************************************************
+# Wrapper Logging Properties
+#********************************************************************
+# Format of output for the console.  (See docs for formats)
+wrapper.console.format=PM
+
+# Log Level for console output.  (See docs for log levels)
+wrapper.console.loglevel=INFO
+
+# Log file to use for wrapper output logging.
+wrapper.logfile=%KARAF_BASE%/data/log/wrapper.log
+
+# Format of output for the log file.  (See docs for formats)
+wrapper.logfile.format=LPTM
+
+# Log Level for log file output.  (See docs for log levels)
+wrapper.logfile.loglevel=INFO
+
+# Maximum size that the log file will be allowed to grow to before
+#  the log is rolled. Size is specified in bytes.  The default value
+#  of 0, disables log rolling.  May abbreviate with the 'k' (kb) or
+#  'm' (mb) suffix.  For example: 10m = 10 megabytes.
+wrapper.logfile.maxsize=10m
+
+# Maximum number of rolled log files which will be allowed before old
+#  files are deleted.  The default value of 0 implies no limit.
+wrapper.logfile.maxfiles=5
+
+# Log Level for sys/event log output.  (See docs for log levels)
+wrapper.syslog.loglevel=NONE
+
+#********************************************************************
+# Wrapper Windows Properties
+#********************************************************************
+# Title to use when running as a console
+wrapper.console.title=${name}
+
+#********************************************************************
+# Wrapper Windows NT/2000/XP Service Properties
+#********************************************************************
+# WARNING - Do not modify any of these properties when an application
+#  using this configuration file has been installed as a service.
+#  Please uninstall the service before modifying this section.  The
+#  service can then be reinstalled.
+
+# Name of the service
+wrapper.ntservice.name=${name}
+
+# Display name of the service
+wrapper.ntservice.displayname=${displayName}
+
+# Description of the service
+wrapper.ntservice.description=${description}
+
+# Service dependencies.  Add dependencies as needed starting from 1
+wrapper.ntservice.dependency.1=
+
+# Mode in which the service is installed.  AUTO_START or DEMAND_START
+wrapper.ntservice.starttype=${startType}
+
+# Allow the service to interact with the desktop.
+wrapper.ntservice.interactive=false
