diff --git a/Builds/VisualStudio2012/open-ephys.sln b/Builds/VisualStudio2012/open-ephys.sln
index 61074c0e04aebb4f1d48dd95b47ccd0a86ed9f09..520a8d855d09a997cfccb769049bb0e4c270ef34 100644
--- a/Builds/VisualStudio2012/open-ephys.sln
+++ b/Builds/VisualStudio2012/open-ephys.sln
@@ -1,21 +1,29 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
+Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 2012
-Project("{5A05F353-1D63-394C-DFB0-981BB2309002}") = "open-ephys", "open-ephys.vcxproj", "{9C924D66-7DEC-1AEF-B375-DB8666BFB909}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "open-ephys", "open-ephys.vcxproj", "{9C924D66-7DEC-1AEF-B375-DB8666BFB909}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
+		Debug|x64 = Debug|x64
+		Debug64|Win32 = Debug64|Win32
 		Debug64|x64 = Debug64|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+		Release64|Win32 = Release64|Win32
 		Release64|x64 = Release64|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|Win32.ActiveCfg = Debug|Win32
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|Win32.Build.0 = Debug|Win32
-		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.ActiveCfg = Release|Win32
-		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.Build.0 = Release|Win32
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|x64.ActiveCfg = Debug|Win32
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|Win32.ActiveCfg = Debug64|x64
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.ActiveCfg = Debug64|x64
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.Build.0 = Debug64|x64
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.ActiveCfg = Release|Win32
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.Build.0 = Release|Win32
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|x64.ActiveCfg = Release|Win32
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|Win32.ActiveCfg = Release64|x64
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|x64.ActiveCfg = Release64|x64
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|x64.Build.0 = Release64|x64
 	EndGlobalSection
diff --git a/Source/Processors/DataThreads/EcubeThread.cpp b/Source/Processors/DataThreads/EcubeThread.cpp
index f0b0b956343fe46b3150253b763ee07ccd06da11..93179c79c976a2330a30b09fa6348910016281c7 100644
--- a/Source/Processors/DataThreads/EcubeThread.cpp
+++ b/Source/Processors/DataThreads/EcubeThread.cpp
@@ -25,7 +25,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include "../../UI/EcubeDialogComponent.h"
 #include <stdint.h>
 
-#if JUCE_WINDOWS
+#ifdef ECUBE_COMPILE
 #import "libid:60C0AAC2-1E0B-4FE5-A921-AF9CEEAAA582"
 
 using namespace ecubeapiLib;
diff --git a/Source/Processors/DataThreads/EcubeThread.h b/Source/Processors/DataThreads/EcubeThread.h
index 858c81db68ef58e94ace5cb88920d3ccf318045a..c2a1f56d4e2744e5294e130fac34cf334ee6689a 100644
--- a/Source/Processors/DataThreads/EcubeThread.h
+++ b/Source/Processors/DataThreads/EcubeThread.h
@@ -40,6 +40,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 class SourceNode;
 
 #if JUCE_WINDOWS
+#ifdef ECUBE_SUPPORT
+#define ECUBE_COMPILE
+#endif
+#endif
+
+#ifdef ECUBE_COMPILE
 class EcubeDevInt;
 #endif
 
@@ -48,7 +54,7 @@ class EcubeThread : public DataThread
 {
 public:
 
-#if JUCE_WINDOWS
+#ifdef ECUBE_COMPILE
     EcubeThread(SourceNode* sn);
     ~EcubeThread();
 
diff --git a/Source/Processors/SourceNode.cpp b/Source/Processors/SourceNode.cpp
index 78a6e81fcc28b9a4fdd4268074e83407a4f3101b..95251653688920ed1a95278ede34844afc4ef139 100755
--- a/Source/Processors/SourceNode.cpp
+++ b/Source/Processors/SourceNode.cpp
@@ -59,7 +59,7 @@ SourceNode::SourceNode(const String& name_)
     {
         dataThread = new RHD2000Thread(this);
     }
-#if JUCE_WINDOWS
+#if ECUBE_COMPILE
     else if (getName().equalsIgnoreCase("eCube"))
     {
         dataThread = new EcubeThread(this);
diff --git a/Source/UI/ProcessorList.cpp b/Source/UI/ProcessorList.cpp
index 28c2817e235fa997b8e503cf55bbe3fc23b91eff..c32ea5c339f916d991519e98578b6f68b5cd3e64 100755
--- a/Source/UI/ProcessorList.cpp
+++ b/Source/UI/ProcessorList.cpp
@@ -56,7 +56,9 @@ ProcessorList::ProcessorList()
     //sources->addSubItem(new ProcessorListItem("Custom FPGA"));
     sources->addSubItem(new ProcessorListItem("Rhythm FPGA"));
 #if JUCE_WINDOWS // eCube module currently only available for Windows
+#ifdef ECUBE_SUPPORT
     sources->addSubItem(new ProcessorListItem("eCube")); // Added by Michael Borisov
+#endif
 #endif
     sources->addSubItem(new ProcessorListItem("File Reader"));
     //sources->addSubItem(new ProcessorListItem("Network Events"));